Forum > Presentazioni nuovi utenti

Problemi con Delimiter mysql

(1/2) > >>

DSchetti:
Buongiorno a tutti, ho scritto una funzione mysql che è riconosciuta sintatticamente corretta con MySQL Query Browser e funziona correttamente in varie select.  Quando però tento con lazarus di definirla sul DB mysql con una TSQLquery ottengo un errore sul comando DELIMITER // questa è la funzione:
drop function if exists myfun;
delimiter //
create function myfun(
par1 double,
par2 double) returns decimal(13, 5) deterministic
begin
  -- corpo della funzione
end//
Dopo varie ricerche non sono riuscito a risolvere il problema, chiedo gentilmente una mano. Saluti

xinyiman:
Ciao tsqlquery mi sembra di ricordare che esegue una query per volta.
Prima esegui
drop function if exists myfun;

Poi esegui
create function myfun(
par1 double,
par2 double) returns decimal(13, 5) deterministic
begin
  -- corpo della funzione
end

Oppure usi TSQLScript

DSchetti:
hai ragione, nella fretta ho incollato TSQLQuery ma intendevo TSQLScript, il risultato non cambia, ti ringrazio per la risposta, ho l'impressione che non riconosce delimiter!

xinyiman:
Con il TSQLScript dovrebbe bastare

drop function if exists myfun;
create function myfun(
par1 double,
par2 double) returns decimal(13, 5) deterministic
begin
  -- corpo della funzione
end;

Perchè se non ricordo male non gestisce i delimitatori. Ma separa le query sulla base del carattere "Terminator" ovvero ;

DSchetti:
Purtroppo non funziona da un errore al primo terminatore che incontra dentro il corpo della funzione, probabilmente perché lo interpreta come un comando da eseguire,  invece è una istruzione della funzione che si sta definendo e che deve essere caricata sul DB. Grazie.

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa