DELIMITER MYSQL
Boa noite pessoal, tô precisando de uma força aqui.
quando o meu sistema é iniciado pela primeira vez, ele deve executar um script para criar o banco de dados em MySql. Quando o banco estava mais simples, blz, pq eu usava um
. Fica bacana com um progressbar.
Agora eu implementei stored procedures no banco de dados, mas para criá-las eu tenho que mudar o delimiter.
Isso eu até tratei na hora de ler o script, mas quando chega no momento
alguém já passou por isso?
quando o meu sistema é iniciado pela primeira vez, ele deve executar um script para criar o banco de dados em MySql. Quando o banco estava mais simples, blz, pq eu usava um
comando = split (script, [Ô];[Ô])
com um loop tipo CnSql.Execute comando(i)
. Fica bacana com um progressbar.
Agora eu implementei stored procedures no banco de dados, mas para criá-las eu tenho que mudar o delimiter.
Isso eu até tratei na hora de ler o script, mas quando chega no momento
CnSql.Execute [Ô]Delimiter ;;[Ô]
o mysql retorna erro 1064 [Ô]You have a error in your SQL sintax (...) near [ô]Delimiter[ô]alguém já passou por isso?
Eu sempre coloco assim minhas procedures.
DELIMITER |
[Ô]Aqui coloco o codigo da procedure[Ô]
DELIMITER ;
DELIMITER |
[Ô]Aqui coloco o codigo da procedure[Ô]
DELIMITER ;
Citação::
Eu sempre coloco assim minhas procedures.
DELIMITER |
[Ô]Aqui coloco o codigo da procedure[Ô]
DELIMITER ;
ok vou tentar isso qdo chegar.
mas a questão aqui é: estou criando o banco de dados via conexão OLEDB. se eu for pelo prompt de comando ou pelo heidsql por exemplo, não dá problema algum. mas qdo eu uso CnSql.Execute [Ô]Delimiter ;;[Ô] ou [Ô]CnSql.Execute $$[Ô] ou outro caracter por delimiter, tenho como retorno o erro citado.
Como imaginava.... erro 1064
Uma coisa que eu não fiz ainda foi passar a instrução para criar a procedure sem o delimiter. Não posso afirmar que a conexão ODBC já trate o delimiter, mas é um teste que vou fazer.
E quanto ao caracter usado como delimiter, independetemente do caracter que é usado ao criar a procedure, o MySqlDump cria o arquivo de bacjup com delimiter [Ô];;[Ô].
Vamos em frente.
Uma coisa que eu não fiz ainda foi passar a instrução para criar a procedure sem o delimiter. Não posso afirmar que a conexão ODBC já trate o delimiter, mas é um teste que vou fazer.
E quanto ao caracter usado como delimiter, independetemente do caracter que é usado ao criar a procedure, o MySqlDump cria o arquivo de bacjup com delimiter [Ô];;[Ô].
Vamos em frente.
pessoal, já estou sem idéias.
Não há uma maneira de criar as procedures pela minha coneão?
Vou ter que usar o mysqldump para criar o banco de dados com o script?
Não há uma maneira de criar as procedures pela minha coneão?
Vou ter que usar o mysqldump para criar o banco de dados com o script?
é isso aà pessoal. a única maneira que encontrei foi usar o comando source [ô]arquivo.sql[ô]. não é exatamente o que queria mas funciona.
Tópico encerrado , respostas não são mais permitidas