isPrimary not found

28/10/2013

0

Olá pessoal,
estou tenando utilizar o cloneConnection de um TSQLConnection, porém estou tendo o seguinte problema.
Ao realizar o open o seguinte erro é exibido:
Field IsPrimary not found

Segue o codigo que estou usando para teste
var
  vaDs : TSQLDataSet;
begin
  vaDs := TSQLDataSet.Create(nil);
  vaDs.SQLConnection := con.CloneConnection;
  vaDs.CommandText := 'select * from aluno';
  vaDs.Open;


a variavel con é um TSQLConnection do meu DataModule que já esta configurado a conexao com um banco Firebird 2.5.
Se eu retiro o cloneConnection tudo funciona.
Outra coisa que percebi é que caso a tabela que esteja sendo aberta não possua PK o erro não ocorre. (Obviamente não vou fazer isso no meu banco)

Desde já Obrigado.

Rafael Costa

Rafael Costa

Responder

Posts

17/04/2014

Rafael Costa

Então, já faz um tempão desde postei a dúvida, somente para ficar registrado, eu resolvi o problema criando meu próprio CloneConnection.

Segue o código:
function fpuCloneConnection(ipConn: TSQLConnection): TSQLConnection;
begin
  Result := TSQLConnection.Create(nil);
  Result.LoadParamsOnConnect := ipConn.LoadParamsOnConnect;
  Result.LoginPrompt := ipConn.LoginPrompt;
  Result.DriverName := ipConn.DriverName;
  Result.ConnectionName := ipConn.ConnectionName;
  Result.Name := ipConn.Name + 'Clone1';//caso necessite clonar a conexao varias vezes implemente uma lógica melhor aqui.
  Result.Params.AddStrings(ipConn.Params);
  Result.GetDriverFunc := ipConn.GetDriverFunc;
  Result.LibraryName := ipConn.LibraryName;
  Result.VendorLib := ipConn.VendorLib;
end;
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