Search  
Saturday, February 11, 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  problema execut...
 problema executare SELECT
 
 12/12/2009 10:09:29 PM
User is offlinebiscuite
16 posts


problema executare SELECT
 (N/A)
Salut, va rog foarte mult ajutati-ma si pe mine cu aceasta problema. Vreau sa retin o valoare intr-o matrice dupa ce am facut o interogare in baza de date care se afla pe un server MYSQL.
Postez aici interogarea pe care o fac:

PROCEDURE uLogin
PARAMETERS cUserName, cPassword &&Primire parametri
DIMENSION test(1)
lcSQL= [SELECT umarca FROM t_user WHERE username = '] ;
+ cUserName + [' AND password ='] + cPassword + [' INTO ARRAY test]
lExec = SQLExec(liHandle,lcSql)
....
....
....
ENDPROC

Execut aceasta procedura si vreau sa memeorez valoarea "umarca" in matricea "test". Problema este ca la executia proceduri, nu gasesc in baza de date nici o inregistrare care sa se potriveasca cu conditiile WHERE cu toate ca exista o inregistrare care corespunde parametrilor "cUsername" si respectiv "cPassword", iar valoarea matricea "test" este .F. nici decum valoarea campului uMarca.

Daca interogarea o fac fara sa mai trec clauza "INTO ARRAY test" totul este ok .. gasesc inregistrarea care sa corespunda clauzelor WHERE.
Deci intrebarea mea este .. cum reusesc sa memorez valoarea campului "uMarca" intr-o matrice .. respectiv matricea "test" in cazul meu.

Multumesc foarte mult pentru ajutorul dumneavoastra.
Cand execut aceasta procedura,
 12/13/2009 1:16:51 PM
User is offlineedyshor
1450 posts
1st




Re: problema executare SELECT
 (N/A)
Din cate stiu, SqlExec() iti pune rezultatul intr-un cursor si nicidecum intr-un array -> cauta functia in help
 12/13/2009 1:26:30 PM
User is offlinebiscuite
16 posts


Re: problema executare SELECT
 (N/A)
Este foarte adevarat ... daca omit clauza "INTO ARRAY" totul este ok ... gasesc in cursor valoarea pe care o caut. Sa inteleg ca nu am nici o sansa sa primesc valoarea pe care o caut intr-o matrice, tot ce trebuie sa fac este sa iau valoarea returnata in cursor si sa o pun frumusel in matrice.

Multumesc pentru informatie
 12/14/2009 10:52:35 AM
User is offlineaflorin
838 posts
1st


Re: problema executare SELECT
 (N/A)
Este foarte corect, si are si logica:
- SELECTul pe care il trimiti cu SqlExec() se executa de catre server, deci inclusiv clauza INTO ARRAY
- chiar daca MySQL ar avea habar de aceasta clauza, eventualul array ar fi creat pe server, si nu pe client

Florin Aparaschivei - Iasi
 12/15/2009 11:32:57 AM
User is offlineHorHe
116 posts
5th


Re: problema executare SELECT
 (N/A)

Observatie: Ce se intampla daca cUserName si/sau cPassWord are valoarea '.or.'1'='1 ?

Revenind la problema cu array-ul, ai putea sa faci inca o interogare pe cursorul rezultat; parerea mea ca mai mult nu se poate:
lcSqlString  = [SELECT * FROM users]
lnExecResult = SQLExec( lnConnHandle, lcSqlString, lcCursorName, laInfo )
If laInfo(2)>0

     Select * from ( lcCursorName ) into array laCursor
EndIf
Iar ca sa verifici daca exista utilizatori, poti folosi :
If Type( [laCursor], 1 ) = [A]
     ? [Exista ],
Alen( laCursor, 1 ), [ utilizatori.]
     *-----< Ce fac cu datele intra aici

Else
     ? [Nu exista utilizatori.]
EndIf

Hope helps.
  Visual FoxPro  Client/Server  problema execut...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement