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,
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)