Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xzazax

[Resolvido] Executar *.sql via programação com ADO.

Recommended Posts

Boa Tarde Pessoal,

 

Estou com uma duvida básica, porem que nao consegui resposta do que eu precisava atraves do Google.

Deixo expor meu problema:

1)Fiz uma aplicação que conecta em um BD MS SQL. Essa parte tá OK.

 

2)Tenho diversos comandos SQL em diversos arquivos *.sql. SQL´s Testados e rodados perfeitamente sem erros atraves do Query Analyzer.

 

3)Estou utilizando ADO.

 

-Minha duvida é:

a)Como fazer para o delphi ler esse arquivo *.sql e executar?

b)Eu vi algo sobre o "loadfromfile", mas ele deu pau com meu SQL.

 

Vou colar uma parte do SQL abaixo para vcs ter uma ideia.

Obrigado desde já.

 

--|||||||||||||||||||||||||||||||||||||||||||||||||||||
--||CONVERSÃO						||
--||DATA ULTIMA ATUALIZAÇÃO: 18/09/2007			  ||
--||SCRIPT IMPORTAÇÃO DO CADASTRO DE CONTRIBUINTES   ||
--||CONTRIBUINTE									 ||
--|||||||||||||||||||||||||||||||||||||||||||||||||||||
USE BaseTeste
GO

--DELETA OS DADOS DA TABELA CONTRIBUINTE
DELETE FROM CONTRIBUINTE
--INSERINDO OS DADOS NA TABELA CONTRIBUINTE
PRINT 'INSERINDO TABELA CONTRIBUINTE'
INSERT INTO CONTRIBUINTE(cdContribuinte,dscomplemento,inNaturezaJuridica,naLogradouro,nmCidade,nmCont
ibuinte,nmfantasia,
						 nrcgccpf,nrimovel,nrinscricaoEstadual,sgEstado,cdCep,nmbairro)
				   SELECT 
						  conversao.dbo.arr_con.concod, 
						  conversao.dbo.arr_con.concom,
						  CASE 
						  WHEN conversao.dbo.arr_con.connat=1 THEN 'F'
						  WHEN conversao.dbo.arr_con.connat=2 THEN 'J'
						  END,
						  conversao.dbo.arr_con.conend,
						  conversao.dbo.arr_con.concid,
						  conversao.dbo.arr_con.connom,
						  conversao.dbo.arr_con.confan,
						  CAST(dbo.so_numeros(conversao.dbo.arr_con.concpfcnpj) as float),
						  CAST(dbo.so_numeros(conversao.dbo.arr_con.connum) as int),
						  conversao.dbo.arr_con.coninsest,
						  conversao.dbo.arr_con.conuf,
						  CAST(dbo.so_numeros(conversao.dbo.arr_con.concep) as int),
						  conversao.dbo.arr_con.conbai
						  FROM conversao.dbo.arr_con

GO
--Como o bairro é relacionado em outra tabela, agora vou relacionar com a tabela CONTRIBUINTE
PRINT 'PREENCHENDO O CAMPO BAIRRO DA TABELA CONTRIBUINTE'
DECLARE @concod int
DECLARE @conbai varchar(30)
DECLARE curBAIRRO CURSOR
FOR SELECT conversao.dbo.arr_con.concod,conversao.dbo.arr_con.conbai from conversao.dbo.arr_con 
OPEN curBAIRRO
FETCH NEXT FROM curBAIRRO into @concod,@conbai
WHILE @@FETCH_STATUS = 0
BEGIN
 UPDATE contribuinte set cdbairro=(SELECT cdbairro from XXXbairro where sys_conbai=@conbai) where cdContribuinte=@concod
FETCH NEXT FROM curBAIRRO into @concod,@conbai
END
CLOSE curBAIRRO
DEALLOCATE curBAIRRO

PRINT 'FIM CADASTRO CONTRIBUINTE'

Compartilhar este post


Link para o post
Compartilhar em outros sites

IF checkbox1.Checked THEN

BEGIN

adosql.SQL.Clear;

assignfile(arq,'funcoes.sql');

reset(arq);

WHILE NOT EOF(arq) DO

BEGIN

readln(arq,aux);

adosql.SQL.Add(aux);

END;

adosql.ExecSQL;

closefile(arq);

END;

 

a)Mais ou menos isso Marcio?

b)Eu só nao entendi a parte do GO para ser sincero.!?!

c)Essas linhas comentadas tb nao tem problema? --comentario

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio, não sei como te agradecer!

Era o tal do GO mesmo que tava dando problema.

 

if aux='GO' then adosql.execSQL;

 

Perfeito.

Obrigado mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.