- Este tópico contém 3 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 9 meses atrás por
AleCris.
-
AutorPosts
-
28 de maio de 2009 às 6:27 am #87027
AleCris
ParticipanteTenho a seguinte situação:
estou desenvolvendo um programa em Delphi 2009, conexao BDE com o oracle e necessito executar um scrip sql(salvo em arquivo) em tempo de execução.
Exemplo:— Geração de Modelo físico
CREATE TABLE PESSOA (
CODPESSOA Número(4) PRIMARY KEY,
NOME STRING
)
/
CREATE TABLE ENDERECO (
RUA STRING,
BAIRRO STRING,
NUMERO INTEGER,
NUMEND INTEGER PRIMARY KEY,
CODPESSOA INTEGER,
FOREIGN KEY(CODPESSOA) REFERENCES PESSOA (CODPESSOA)
)/
como posso fazer?
Sei que o forum é de oracle e isto envolve mais programação, mas se alguém puder me ajudar, agradeço muito!
28 de maio de 2009 às 3:57 pm #87029Rodrigo Mesquita
ParticipanteNão endendi muito como vc quer fazer isso, mais vai uma sugestão.
vc pode executar esse script via sqlplus
grave esse script em um arquivo .sqlex.:
sqlplus usuario/senha@banco @c:arquivo.sql
exit;28 de maio de 2009 às 4:56 pm #87032Regis Araujo
ParticipanteOla Cris, bom dia..
Vamos lá.. só uma sugestão.. Não utilize BDE para conexão com oracle.. ele está mega ultrapassado.. utilize o componente dbexpress que é bem mais amigável e mais rapido que BDE..
Para vc executar este script basta vc criar uma unit no delphi, adicionar um componente SQL e um componente Button.. No evento Click do componente, proceder conforme abaixo..
CRIAÇÃO DA TABELA PESSOA
procedure TForm1.QryTabelaPessoaClick(Sender: TObject);
begin
Q.Close ;
Q.SQL.Text:=
'CREATE TABLE PESSOA ' +
'(CODPESSOA NUMBER(4) PRIMARY KEY, '+
' NOME VARCHAR2(50))';
Q.Prepare;
Q.ExecSQL;
Q.Free;end;
CRIAÇÃO DA TABELA ENDEREÇO
procedure TForm1.QryTabelaEnderecoClick(Sender: TObject);
begin
Q.Close ;
Q.SQL.Text:=
' CREATE TABLE ENDERECO ' +
'(NUMERO NUMBER(8) PRIMARY KEY, ' +
' RUA VARCHAR2(50), ' +
' BAIRRO VARCHAR2(50), ' +
' NUMERO NUMBER(8), ' +
' CODPESSOA NUMBER(8), ' +
' FOREIGN KEY(CODPESSOA) REFERENCES PESSOA (CODPESSOA)) ';
Q.Prepare;
Q.ExecSQL;
Q.Free;end;
Obs. Vc precisa criar um Button para cada evento… e eu adaptei seu código de criação para o Oracle..
Espero ter ajudado..
Abraços..
30 de maio de 2009 às 5:48 pm #87068AleCris
ParticipanteAjudou sim obrigada! Na verdade eu penso em fazer isto como ultima solução, só que na verdade desta forma precisarei ler todo o arquivo, capturar os comandos sql, e passar para a propriedade sql.text do compente escolhido.
Queria saber se não existe um componente que recebe o diretorio/arquivo.sql e o executa diretamente no banco, como fazemos no sqlplus, mas isso deveria ser um componente no programa que recebe o arquivo e executa diretamente no banco em tempo de execução.
-
AutorPosts
- Você deve fazer login para responder a este tópico.