Como criar uma variavel TClientDataSet
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
Curtidas 0
Respostas
Paulo_amorim
23/11/2004
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é+
GOSTEI 0
Aldus
23/11/2004
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
GOSTEI 0