Fórum SQLQuery com insert no IB/Firebird, só com uma linha? #273536
22/03/2005
0
Estou desenvolvendo um sistema de migração de dados. Ocorre que se eu colocar dois ou mais INSERT´s no SQLQuery e executar, o delphi sempre me dá erro na linha 2. Executando a mesma query no console do IB/Firebird, esse erro não ocorre. Pq?
Danilo_zanaga
Curtir tópico
+ 0Posts
22/03/2005
Isaque
Gostei + 0
22/03/2005
Danilo_zanaga
Exatamente,mas deveria executar o bloco todo. Se eu colocar a seguinte clausula SQL em SQLQuery1:
INSERT INTO TABELA VALUES(´1´,´2´,´3´);
INSERT INTO TABELA VALUES(´4´,´5´,´6´);
INSERT INTO TABELA VALUES(´7´,´8´,´9´);
Executará a linha um e dará um erro na linha dois. Se eu fizer esta mesma operação em um base PostgreSQL não dará nenhum erro. Ou se eu colocar estas 3 linhas no marathon (por exemplo), não dará erro algum.
Gostaria de saber se deve ser um bug do dbexpress com o IB/Firebase e se existe maneira de realizar esta operação.
Gostei + 0
22/03/2005
Isaque
O q vc poderá fazer é criar uma rotina que encapsule os blocos de instruções SQL que vc deseja executar e logo a seguir um loop que leia essas instruções, transfira-as para um componente TSQLQuery e as execute. Isso uma a uma.
Gostei + 0
22/03/2005
Danilo_zanaga
Uma das opçoes do meu sistema é justamente essa, inserir uma linha e executar, mas tenho a opção de carregar quantas linhas o usuário quiser (ex: 1.000 por vez), e com PostgreSQL funciona direitinho (com TSQLQuery, inclusive). Creio que esta limitação está associada ao IB/FB.
Gostei + 0
22/03/2005
Gandalf.nho
Gostei + 0
22/03/2005
Kotho
begin
insert...
...
end
Gostei + 0
22/03/2005
Danilo_zanaga
Pensei nesta possibilidade, mas como estou querendo enviar o sistema para o ClubeDelphi (UpLoader), gostaria que fosse somente com BDE e dbExpress, mas vou tentar.
Gostei + 0
22/03/2005
Danilo_zanaga
nao funcionou
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)