Criação de SQLConnection em runtime - Delphi XE

11/04/2013

0

Boa noite,

Tenho um fonte antigo, delphi 7, onde é criada uma conexão com banco sql em runtime e funciona direito... fui tentar adaptar o código para usar no delphi xe e não funfa!!

Código antigo que funciona:

Con := TSQLConnection.Create(Nil);
Con.KeepConnection := False;
Con.LoginPrompt := False;
Con.DriverName := 'MSSQL';
Con.GetDriverFunc := 'getSQLDriverMSSQL';
Con.VendorLib := 'sqloledb.dll';
Con.LibraryName := 'dbexpmss.dll';
Con.Params.Add('BlobSize=-1');
Con.Params.Add('HostName=131.171.128.99\SQLEXPRESS');
Con.Params.Add('DataBase=teste');
Con.Params.Add('User_Name=teste');
Con.Params.Add('Password=teste2012');
Con.Open;

Quando tento abrir no delphi XE da o erro "DBX Error: Driver could not be properly initialized. Client library may be missing, not installed, of wrong version, or the driver may be missing from the system path"

O estranho é que se eu coloco um sqlconnection no form e preencho os dados da conexão ele conecta normal pelo delphi XE....

Algum colega ja passou por isso?

Abrax,
Jose Junior

Jose Junior

Responder

Post mais votado

13/04/2013

desculpe a primeira resposta minha estaequivocada , pois respondi relativo ao MYSQL

pois bem , peço desculpa e segue a forma correta

var
con:TSQLConnection;
begin
try
Con := TSQLConnection.Create(Nil);
Con.KeepConnection := False;
Con.LoginPrompt := False;
con.LoadParamsOnConnect:=false;
Con.DriverName := 'MSSQL';
Con.GetDriverFunc :='getSQLDriverMSSQL'; 
Con.VendorLib := 'sqlncli10.dll';   
Con.LibraryName := 'dbxmss.dll'; 


con.Params.Values['HostName']:='SALHA_MODA\SQLEXPRESS2008';
con.Params.Values['DataBase']:='teste';
con.Params.Values['User_Name']:='teste';
con.Params.Values['Password']:='teste2012';

Con.Open;
showmessage('conexao Sucesso');
con.Close;
except
  Showmessage('erro');
end;



[]sds

Marco Salles

Marco Salles
Responder

Mais Posts

11/04/2013

Douglas

Boa noite Jose,

você deu USES a classe pertencente do SQLConnection,

antes de fazer esse procedimento ?
Responder

12/04/2013

Marco Salles

Boa noite,

Tenho um fonte antigo, delphi 7, onde é criada uma conexão com banco sql em runtime e funciona direito... fui tentar adaptar o código para usar no delphi xe e não funfa!!

Código antigo que funciona:

//
Con.VendorLib := 'sqloledb.dll'; // Atual VendorLib=LIBMYSQL.dll
Con.LibraryName := 'dbexpmss.dll'; //Atual dbxmys.dll

Con.Params.Add('BlobSize=-1'); //Atual BlobSize=-1
Con.Params.Add('HostName=131.171.128.99\SQLEXPRESS'); //O Seu mesmo
Con.Params.Add('DataBase=teste'); // A sua Base Mesmo
Con.Params.Add('User_Name=teste'); // Ok
Con.Params.Add('Password=teste2012'); // Ok
Con.Open;


e na uses vc tem que definir

Data.DBXMySQL, Data.DB, Data.SqlExpr

Se por ventura não rodar , de duas uma

1) Ou a falta de carregar alguns paâmetros

2))ou as dlls LIBMYSQL.dll / dbxmys.dll não estão sendo localizadas (O próprio Delphi deveria ser capas de iniciliza´las)


ps) Esta Migração do Delphi 7 para as Versões mais recentes do Delphi sepre irá esbarrar no DBX , isto é normal mesmo
e tb nos componentes Indy entre outrospercausos como a Unicode

[]sds

Responder

12/04/2013

Jose Junior

Boa noite Jose,

você deu USES a classe pertencente do SQLConnection,

antes de fazer esse procedimento ?


Boa noite,

Declarei sim! Tenho uma estrutura dbxpress com componentes montados nesse form que funcionam normalmente... só código que nao esta indo...
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar