Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  MYSQL Proceduri...
 MYSQL Proceduri stocate
 
 7/16/2009 11:25:06 AM
User is offlinearanox
272 posts
4th


MYSQL Proceduri stocate
 (Romania)
Salut,
Am si eu o intrebare.
Am o procedura stocata care are trebui sa imi dea max_date din mai multe tabele
adica am vreo 50 tabele in care exista in fiecare o coloana cu date si eu vreau sa aflu care e data cea mai mare dintre toate.
Am creat lista de tabele, am un loop care merge bine, etc ...
Problema apare cind eu de exemplu vreau sa dau "select max(coloana) from variabila"
nu stiu cum sa fac selectul sa imi mearga prin loop ...in VFP e simplu ...dar in MYSQL m-am poticnit
inainte sa dau comanda cu max imi iau numele tabelei intr-o variabila doar ca nu am reusit sa il conving sa imi citeasca variabila ....tot zice ca nu exista tablul cu numele variabilei...
Am incercat si cu prepare ..da nu merge nici cu ala f bine, plus nu vreau sa vad cum selecteaza fiecare valoare din fiecare tabel ...ma intereseaza doar rezultatul final.

In concluzie, daca stie careva cum pasezi valoare unei variabile in locul denumiri tabelei intr-un select ar fi super.


Orosz Lorand
 7/16/2009 2:18:57 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: MYSQL Proceduri stocate
 (N/A) Modified By Grigore Dolghin  on 7/16/2009 2:19:36 PM)
Asa nu merge (apropo, nici in TSQL nu merge). Solutia e sa construiesti toata instructiunea SQL intr-o variabila si sa o executi pe aia:

Create Procedure MyProcedure(paramTabela varchar(50))

Set @Nume_Tabela = paramTabela;
Set @Text_SQL = Concat('SELECT Max(coloana) From ',@paramTabela);
Prepare sTemp From @Text_SQL;
Execute sTemp;
Dealocate Prepare sTemp;

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 7/16/2009 2:40:04 PM
User is offlinearanox
272 posts
4th


Re: MYSQL Proceduri stocate
 (Romania)
am incercat si asa..am mai zis si la inceput..
poate gresesc eu ceva ...nu imi dau seama
uite o parte din procedura:


            SET @c1=counter;
            Set @Text_SQL1 := Concat('select table_name into nume_tabel FROM xlist limit ',@c1,'1');
            Prepare sTemp1 From @Text_SQL1;
            Execute sTemp1;
            Deallocate sTemp1;

Asta ar trebui sa imi seteze in nume_tabel denumirea tabelului care ma intereseaza ...conform contorului...
apoi am ,...

            Set @Nume_Tabela := nume_tabel;
            Set @Text_SQL := Concat('SELECT Max(update_day) From ',@Nume_Tabela);
            Prepare sTemp From @Text_SQL;
            Execute sTemp;
            Deallocate sTemp;

iar la rulare zice ca nu exista variabila nume_tabel
daca rulez prima bucata de cod fara prepare ci direct, imi face INTO variabila ...
dar atunci nu pot pune variabila la limit ...
daca fac cu prepare ..merge variabila de la limit ...da se pare ca nu face INTO variabila ...desi ar trebui ..


Orosz Lorand
 7/16/2009 3:58:52 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: MYSQL Proceduri stocate
 (N/A)
Bucata a doua de cod ar trebui sa fie intr-o iteratie, banuiesc ca este deja. Incearca sa prefixezi "Nume_tabel" cu numele tabelei in care e coloana aia, ca altfel n-o sa se apuce s-o caute singur de nebun prin toata baza de date.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Client/Server  MYSQL Proceduri...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement