Fórum Como criar uma variavel TClientDataSet #259523

23/11/2004

0

Olá amigos, estou criando uma função para executar instruções sql, só que precisao criar uma variável tClientDataSet.



function SQLOpen(NomeTabela,InstrucaoSQL:string): string; var cdsTemp: TClientDataSet; begin cdsTemp := TClientDataSet( DM.FindComponent(´SQL_´ + NomeTabela) ); cdsTemp.Close; cdsTemp.CommandText := InstrucaoSQL; cdsTemp.Open; end;


Preciso declarar algo em uses?

Atenciosamente

Mario


Aldus

Aldus

Responder

Posts

23/11/2004

Paulo_amorim

Olá

Precisa sim.. DBClient

Para saber isso, acesse no Help o nome do componente (por exemplo, TClientDataSet) e veja o campo Unit

Espero que ajude
Até+


Responder

Gostei + 0

23/11/2004

Aldus

Olá Paulo, obrigado, funcionou corretamente.

Só tenho mais uma dúvida, se poderes me auxiliar.

Segue a função:
function SQLOpen(NomeTabela,InstrucaoSQL:string): string; var cdsTemp: TClientDataSet; begin cdsTemp := TClientDataSet( DM.FindComponent(´SQL_´ + NomeTabela) ); cdsTemp.Close; cdsTemp.CommandText := InstrucaoSQL; cdsTemp.Open; end;


Seu uso:
uGlobal.SQLOpen(´Empresas´,´SELECT Max(CodEmp) as ProxCod FROM Empresas´);


O que acontece é tenho que coletar o resultado da instrução, tipo assim:

EditCodigo.Text := IntToStr(DM.SQL_Empresas.FieldByName(´ProxCod´).asInteger + 1);

Daí está inacessível, pois seu acesso ficou como cdstemp dentro da função sqlopen, não existe neste momento dentro da minha unit o dm.sql_empresas, teria como passar essa outra instrução também como parâmetro para a função sqlopen como matriz, pois poderia também buscar o nome da empresa, etc. Como ficaria a função?

Ficaria algo assim (função):
function SQLOpen(NomeTabela,InstrucaoSQL:string;OutrosPara:array): string; var cdsTemp: TClientDataSet; begin cdsTemp := TClientDataSet( DM.FindComponent(´SQL_´ + NomeTabela) ); cdsTemp.Close; cdsTemp.CommandText := InstrucaoSQL; cdsTemp.Open; {aqui executaria os itens da array} end;


Uso:
uGlobal.SQLOpen(´Empresas´,´SELECT Max(CodEmp) as ProxCod FROM Empresas´,{EditCodigo.Text := IntToStr(DM.SQL_Empresas.FieldByName(´ProxCod´).asInteger + 1),EditNome.Text := DM.SQL_Empresas.FieldByName(´NOMEEMPRESA´).asString)});


Atenciosamente

Mario




Responder

Gostei + 0

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

Aceitar