Fórum gerar script de inserção igual ao ibexpert #55685
03/04/2006
0
caros amigos , como faço para exportar meus dados igual no ibexpert, quando ele gera os scripts de inserção, pq no ibexpert existe uma opção de exportar dados para script
INSERT INTO ESTOQUE (LOJA, PRODUTO, SALDO_FISICO, SALDO_CONTABIL, SALDO_FISICO_ANT) VALUES (1, 5411, 0, -1, 0);
COMMIT WORK;
isso via delphi
INSERT INTO ESTOQUE (LOJA, PRODUTO, SALDO_FISICO, SALDO_CONTABIL, SALDO_FISICO_ANT) VALUES (1, 5411, 0, -1, 0);
COMMIT WORK;
isso via delphi
Fernando
Curtir tópico
+ 0
Responder
Posts
09/01/2013
Flavio Deuner
Fernando, já deve ter resolvido o teu problema depois de tanto tempo. Estou desenvolvendo algo parecido com o que você precisa, encontrei no site http://www.gohu.com.br/2012/08/gerar-script-de-insert-firebird.html é uma procedure do Hugo Fernandes de muita ajuda.
/* Hugo Fernandes - 2012-08-17 */
CREATE OR ALTER PROCEDURE PROCEXTRACTINSERT (
condicao varchar(200),
tablename varchar(100))
returns (
longline varchar(8000))
as
declare variable stmt_select varchar(4000);
declare variable stmt varchar(4000);
declare variable "_FIRST" varchar(100);
declare variable "_LAST" varchar(100);
declare variable chunk varchar(4000);
begin
Chunk = ;
LongLine = ;
stmt = SELECT distinct(r.RDB$FIELD_NAME) FROM RDB$RELATION_FIELDS r
WHERE r.RDB$RELATION_NAME=||trim(upper(TABLENAME))|| ORDER BY r.RDB$FIELD_POSITION ;
execute statement
SELECT first 1 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME=||trim(upper(TABLENAME)) || order by RDB$FIELD_POSITION asc ; into :"_FIRST" ;
execute statement
SELECT first 1 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME=||trim(upper(TABLENAME)) || order by RDB$FIELD_POSITION desc ; into :"_LAST" ;
for execute statement stmt into :chunk
do
if (Chunk is not null) then
begin
if( Chunk =TRIM("_FIRST")) then
begin
stmt_select = select insert into ||TABLENAME|| values (||coalesce( || TRIM(Chunk)||,) ;
end
else
begin
if(Chunk =TRIM("_LAST")) then
begin
stmt_select = stmt_select || ||,||trim(coalesce(||TRIM(Chunk)||,0))||) from ||TABLENAME|| ||condicao;
end
else
begin
stmt_select = stmt_select || ||,||trim(coalesce(||TRIM(Chunk)||,0)) ;
end
end
end
for execute statement stmt_select into :longline
do
suspend;
end
/* Hugo Fernandes - 2012-08-17 */
CREATE OR ALTER PROCEDURE PROCEXTRACTINSERT (
condicao varchar(200),
tablename varchar(100))
returns (
longline varchar(8000))
as
declare variable stmt_select varchar(4000);
declare variable stmt varchar(4000);
declare variable "_FIRST" varchar(100);
declare variable "_LAST" varchar(100);
declare variable chunk varchar(4000);
begin
Chunk = ;
LongLine = ;
stmt = SELECT distinct(r.RDB$FIELD_NAME) FROM RDB$RELATION_FIELDS r
WHERE r.RDB$RELATION_NAME=||trim(upper(TABLENAME))|| ORDER BY r.RDB$FIELD_POSITION ;
execute statement
SELECT first 1 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME=||trim(upper(TABLENAME)) || order by RDB$FIELD_POSITION asc ; into :"_FIRST" ;
execute statement
SELECT first 1 RDB$FIELD_NAME FROM RDB$RELATION_FIELDS
WHERE RDB$RELATION_NAME=||trim(upper(TABLENAME)) || order by RDB$FIELD_POSITION desc ; into :"_LAST" ;
for execute statement stmt into :chunk
do
if (Chunk is not null) then
begin
if( Chunk =TRIM("_FIRST")) then
begin
stmt_select = select insert into ||TABLENAME|| values (||coalesce( || TRIM(Chunk)||,) ;
end
else
begin
if(Chunk =TRIM("_LAST")) then
begin
stmt_select = stmt_select || ||,||trim(coalesce(||TRIM(Chunk)||,0))||) from ||TABLENAME|| ||condicao;
end
else
begin
stmt_select = stmt_select || ||,||trim(coalesce(||TRIM(Chunk)||,0)) ;
end
end
end
for execute statement stmt_select into :longline
do
suspend;
end
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)