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


Fernando

Fernando

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
Responder

Gostei + 0

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

Aceitar