Fórum Query Heterogenia #213942

13/02/2004

0

eae galera,

to com um probleminha.

estou querendo inserir uns registros q constam em duas outras tabelas, quando um dos campos for igual outras tabelas, andei lendo o help do delphi e la parece existir um problema.

pra rodar um Select tem q se usar .Open; e pra rodar um Insert, Delete, Update, tem q usar um .ExecSQL

estou usando o ADO numa base em access 97.

Cheguei ate neste codigo abaixo, nao da erro algum, o problema eh q o select nao executa usando ExecSQL so usando open, logo o insert funciona mas o select nao.

se alguem tem alguma ideia de q comando usar pra rodar isto, ou um outro SQL usando comandos diferentes, como join ou outra coisa, ia quebrar um gaiao se me ajudasse

Desde ja agradecido,



   Try
      if not DataModule1.Connection.InTransaction
         then
            DataModule1.Connection.BeginTrans;
 
      DataModule1.Query.Close;
      DataModule1.Query.SQL.Clear;

      DataModule1.Query.SQL.Add(´Insert Into ConciliaBB_CEF(Agencia, Reclamante, ContaCEF, ContaBB, SaldoBB, SaldoCEF, Diferenca)´);
      DataModule1.Query.SQL.Add(´Select TbBancoBrasil.Agencia, TbBancoBrasil.Reclamante, TbBancoBrasil.ContaCEF, TbBancoBrasil.ContaBB, TbBancoBrasil.SaldoBB, TbCaixaEconomica.SaldoCEF, TbCaixaEconomica.SaldoCEF´);
      DataModule1.Query.SQL.Add(´From TbBancoBrasil, TbCaixaEconomica Where TbCaixaEconomica.SaldoCEF= TbBancoBrasil.SaldoCEF´´);
      DataModule1.Query.ExecSQL;
      ShowMessage(´Conta Incluida com exito´);
   except
      DataModule1.Connection.RollbackTrans;
      ShowMessage(´Erro na Inclusão da conta´);
   End;





Gods

Gods

Responder

Posts

13/02/2004

Gods

tentei uma coisa mais simples e tb nao deu.

nao eh possivel q um sql simples como este nao possa funcionar no delphi



   Try
      if not DataModule1.Connection.InTransaction
         then
            DataModule1.Connection.BeginTrans;

      DataModule1.Query.Close;
      DataModule1.Query.SQL.Clear;
      DataModule1.Query.SQL.Add(´Insert Into Tabela3(Nome, idade)´);
      DataModule1.Query.SQL.Add(´Select Tabela1.Nome, Tabela1.Idade From Tabela1, Tabela2´);
      DataModule1.Query.SQL.Add(´Where Tabela1.Idade = Tabela2.Idade´);
      DataModule1.Query.ExecSQL;

   except
      DataModule1.Connection.RollbackTrans;
   End;




Responder

Gostei + 0

13/02/2004

Adilsond

Abra o seu banco access e crie uma nova consulta selecionando os campos desejados a serem inclídos. Depois mude o tipo de consulta para consulta acréscimo e adicione a tabela que será a consulta e depois vá em adicionar tabela e coloque a nova tabela do join e faça a devida conexão entre as tabelas. Verifique como ficou o sql, execute. Caso funcione pegue o sql e monte-o em sua clausula sql no delphi e teste.


Responder

Gostei + 0

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

Aceitar