Problema ao executar query
24/02/2010
0
Estou tentando rodar este código, mas dá "access violation" na linha marcada e eu já não tenho mais a menor idéia do que pode ser:
procedure TGera.SpeedButton1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Base.Text := OpenDialog1.Files.Text;
With DM.SQLConnection1 Do
begin
ConnectionName := 'Infoplus';
DriverName := 'Interbase';
GetDriverFunc := 'getSQLDriverINTERBASE';
KeepConnection := true;
LibraryName := {$IFDEF Linux} 'libsqlib.so.1'; {$ELSE} 'dbexpint.dll'; {$ENDIF}
LoadParamsOnConnect := false;
LoginPrompt := false;
Name := 'SQLConnection1';
VendorLib := {$IFDEF Linux} 'libfbclient.so'; {$ELSE} 'GDS32.DLL'; {$ENDIF} // GDS32.DLL fbclient.dll
Params.Clear;
With Params Do
begin
ADD('DriverName=Interbase');
ADD('BlobSize=-1');
ADD('CommitRetain=False');
ADD('Database=' + host.Text + ':' + Base.Text );
ADD('ErrorResourceFile=');
ADD('LocaleCode=0000');
ADD('Password=' + senha.Text);
ADD('RoleName=RoleName');
ADD('ServerCharSet=WIN1252');
ADD('SQLDialect=3');
ADD('Interbase TransIsolation=ReadCommited');
ADD('User_Name=' + login.Text);
ADD('WaitOnLocks=False');
end;
Open;
end;
if DM.SQLConnection1.Connected = false then
ShowMessage('Base de dados não conectada!' + #13 + 'Verifique os dados.')
else
begin
DM.Query.Active := false;
DM.Query.Close;
DM.Query.SQL.Clear;
DM.Query.SQL.Add('SELECT RDB$RELATION_NAME FROM RDB$RELATIONS ');
DM.Query.SQL.Add('WHERE RDB$VIEW_BLR IS NULL ');
DM.Query.Active := true;
if not DM.Query.IsEmpty then
begin
end;
end;
end;
procedure TGera.SpeedButton1Click(Sender: TObject);
begin
OpenDialog1.Execute;
Base.Text := OpenDialog1.Files.Text;
With DM.SQLConnection1 Do
begin
ConnectionName := 'Infoplus';
DriverName := 'Interbase';
GetDriverFunc := 'getSQLDriverINTERBASE';
KeepConnection := true;
LibraryName := {$IFDEF Linux} 'libsqlib.so.1'; {$ELSE} 'dbexpint.dll'; {$ENDIF}
LoadParamsOnConnect := false;
LoginPrompt := false;
Name := 'SQLConnection1';
VendorLib := {$IFDEF Linux} 'libfbclient.so'; {$ELSE} 'GDS32.DLL'; {$ENDIF} // GDS32.DLL fbclient.dll
Params.Clear;
With Params Do
begin
ADD('DriverName=Interbase');
ADD('BlobSize=-1');
ADD('CommitRetain=False');
ADD('Database=' + host.Text + ':' + Base.Text );
ADD('ErrorResourceFile=');
ADD('LocaleCode=0000');
ADD('Password=' + senha.Text);
ADD('RoleName=RoleName');
ADD('ServerCharSet=WIN1252');
ADD('SQLDialect=3');
ADD('Interbase TransIsolation=ReadCommited');
ADD('User_Name=' + login.Text);
ADD('WaitOnLocks=False');
end;
Open;
end;
if DM.SQLConnection1.Connected = false then
ShowMessage('Base de dados não conectada!' + #13 + 'Verifique os dados.')
else
begin
DM.Query.Active := false;
DM.Query.Close;
DM.Query.SQL.Clear;
DM.Query.SQL.Add('SELECT RDB$RELATION_NAME FROM RDB$RELATIONS ');
DM.Query.SQL.Add('WHERE RDB$VIEW_BLR IS NULL ');
DM.Query.Active := true;
if not DM.Query.IsEmpty then
begin
end;
end;
end;
Evandro Gomes
Curtir tópico
+ 0
Responder
Posts
24/02/2010
Thiago Santana
Ao invés de tentar ativar a Query tente apenas abrir: DM.Query.open;
Aproveite e pegue seu código SQL e teste para vê se ele está funcionando corretamente...
Fora isso está td normal pelo menos visualmente..
Responder
Clique aqui para fazer login e interagir na Comunidade :)