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.
Preciso declarar algo em uses?
Atenciosamente
Mario
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
Curtir tópico
+ 0
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é+
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:
Seu uso:
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):
Uso:
Atenciosamente
Mario
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