Executar Script usando IB/FB DbExpress

Firebird

25/10/2006

Olá!
Uso IB/FB + DBExpress

Fiz uma pesquisa e logo vi q não existe um comp. p/ executar Script usando DBExpress. :(
1-Como rodar Script usando DBEpress ?

A quem puder ajudar desde já meus agradecimentos. :lol:

ANT.CARLOS/SP


Ant.carlos/sp

Ant.carlos/sp

Curtidas 0

Respostas

Rinez

Rinez

25/10/2006

Caro amigo Ant.Carlos
Porque não usa ISQL do firebird?
Eu uso assim para o banco já criado:

MString:=´ISQL ´+banco.Text+´ -I ´+script.Text+´ -Q -user SYSDBA -PASSWORD masterkey;´;
IF APPLICATION.MessageBox(pchar(mstring),PCHAR(´Executar??´),mb_yesno)=idno then exit;


TRY
WINEXEC(PCHAR(mstring),SW_RESTORE);
MESSAGEBOX(HANDLE,PCHAR(´SCRIPT EXECUTADO´),
PCHAR(´ATENÇÃO´),
$00000020);
EXCEPT
ON E:EXCEPTION DO BEGIN
SHOWMESSAGE(´ERRO.SCRIPT NÃO EXECUTADO´+E.Message);
EXIT;
END; END;

(o ISQL.exe voce encntra no Firebird\firebird_1_5\bin)
Faça o Script no Bloco de notas.
coloque o ISQL.exe no diretório windows32
Espero ter ajudado
Zenir CTBA.


GOSTEI 0
Ant.carlos/sp

Ant.carlos/sp

25/10/2006

Olá!
Caro amigo, obrigado pela atenção.
fiz o teste como vc me indicou, mas não consegui concluir o teste.
Pois fiz tudo certo, mas não funciona, não consegui nem criar um arquivo de teste.

Veja:
=====================================
Banco := ´Dados_Teste.fdb´;
Texto := ´CREATE TABLE A_TESTE(CODFINA INTEGER)´;
MString:=´isql.exe ´+Banco+´ -I ´+Texto+´ -Q -user SYSDBA -PASSWORD masterkey;´;
TRY
WINEXEC(PCHAR(mstring),SW_MINIMIZE);
MESSAGEBOX(HANDLE,PCHAR(´SCRIPT EXECUTADO´),PCHAR
(´ATENÇÃO´),$00000020);
EXCEPT
ON E:EXCEPTION DO BEGIN
SHOWMESSAGE(´ERRO.SCRIPT NÃO EXECUTADO´+E.Message);
EXIT;
END;
=====================================


GOSTEI 0
Rinez

Rinez

25/10/2006

Prezado Ant Carlos Faça assim:
Para Criar o Banco
no Bloco de Notas CRIE UM ARQUIVO TEXTO E GRAVE COM O NOME
CRIAR.TXT
/*********************************************************/
/**** METADADOS TESTE.FDB 26/10/2006 ****/
/**** CRIA: BANCO, TABELA CAIXA ****************/


SET SQL DIALECT 3;

CREATE DATABASE ´C:\TESTE.FDB´
USER ´SYSDBA´
PASSWORD ´masterkey´
PAGE_SIZE 4096
DEFAULT CHARACTER SET ISO8859_1;



CREATE TABLE CAIXA (
ID_CAIXA INTEGER NOT NULL,
CAIDAT DATE,
CAIHIST VARCHAR(60),
CAIVALOR NUMERIC(15,2),
CAITIPO CHAR(1)
);
/****************Cria Chave Primaria *********************/
ALTER TABLE CAIXA ADD CONSTRAINT PK_CAIXA PRIMARY KEY (ID_CAIXA);

/*******************************/
Depois o comando:
É MELHOR VOCE COLOCAR O COMPONENTE OPENDIALOG1 DA PALETA DIALOGS PARA LER O TXT ONDE VOCÊ COLOCOU.

[b:a5c693193a]MYDIR:=´ISQL -I ´+OPENDIALOG1.FileName+´ -Q;´;[/b:a5c693193a]



WINEXEC(PCHAR(MYDIR),SW_RESTORE);

NÃO ESQUEÇA DOS ESPAÇOS DEPOIS DO I E ANTES DO -Q;.
Qualquer coisa estamos aí.
Abraços Prof. Zenir Ctba


GOSTEI 0
Ant.carlos/sp

Ant.carlos/sp

25/10/2006

:D Caros amigos, obrigado pela ajuda. :D
Consegui fazer funcionar e aqui está uma versao do que fiz. :idea:
Puxa! vcs não sabe o qto me ajudaram, pois há tempos estava procurando isto.


Path := ´C:\ACEINFO\APLICATIVO\´;
Banco:= Path+´DADOS.FDB´;
Isql := ´C:\Arquivos de programas\Firebird\Firebird_1_5\bin\isql.exe ´;

//...Deleta a procedure
Try
Close;
SQL.Clear;
SQL.Add(´DROP PROCEDURE CAIXA_PDV´);
ExecSQL;
Close;
Except
End;

//....Cria Procedure
Texto := ´C:\ACEINFO\APLICATIVO\PROC_CAIXA_PDV.sql´;
MYDIR:=Isql+Banco+´ -I ´+Texto+´ -Q -user SYSDBA -PASSWORD
masterkey;´;
WINEXEC(PCHAR(MYDIR),SW_RESTORE);


Sem +

Muito Obrigado.

ANT.CARLOS/SP


GOSTEI 0
POSTAR