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  Probleme cu SQL...
 Probleme cu SQLSTRINGCONNECT
 
 2/15/2009 3:56:49 PM
User is offlinejohny25
69 posts


Probleme cu SQLSTRINGCONNECT
 (N/A)

Salut!

Inca incerc sa gasesc o metoda buna de conectare la o baza de date.

Am vazut in help-ul VFP pentru SQLSTRINGCONNECT( ) ca se poate face o conexiune fara DSN. Adaug aici codul, dar din pacate nu functioneaza. De fiecare data cind il execut imi apare o fereastra intitulata Select Data Source in care trebuie sa selectez DSN. Daca selectez DSN conexiunea se realizeaza cu succes.

Codul:

lcDSNLess="DRIVER = {SQL Server};" ;
+ "SERVER=desktop1\sqlexpress;" ;
+ "UID=myusername;" ;
+ "PWD=mypass;" ;
+ "DATABASE=mydbfile;"
lnConnHandle=SQLSTRINGCONNECT(m.lcDSNLess)
IF lnConnHandle < 0
= MESSAGEBOX('Cannot make connection', 16, 'SQL Connect Error')
ELSE
= MESSAGEBOX('Connection made', 48, 'SQL Connect Message')
= SQLDISCONNECT(lnConnHandle)
ENDIF

Puteti sa-mi spuneti cum ma pot conecta la server fara DSN ?

Multumesc !

 2/16/2009 12:21:50 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (N/A)
Intrebare: ai o baza de date care se numeste "mydbfile"? si un user care se numeste "myusername", cu parola "mypass"?

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/16/2009 12:53:21 AM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Bineinteles ca nu !

Am vorbit la general. In loc de myusername am numele de user cu care ma conectez la server ,s.a.m.d.

M-am uitat si in exemplul MySQLDemo la metoda app.connecttoserver.Stringul meu arata cam la fel.Diferenta este

"Driver={MySQL ODBC 3.51 Driver};"

si eu nu stiu ce driver sa folosesc. In exemplul din VFP se foloseste "DRIVER = {SQL Server};" dar nu merge fara sa selectez manual DNS (am definit una)

 

 2/16/2009 1:19:14 AM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)
 johny25 wrote

Bineinteles ca nu !

Am vorbit la general. In loc de myusername am numele de user cu care ma conectez la server ,s.a.m.d.

M-am uitat si in exemplul MySQLDemo la metoda app.connecttoserver.Stringul meu arata cam la fel.Diferenta este

"Driver={MySQL ODBC 3.51 Driver};"

si eu nu stiu ce driver sa folosesc. In exemplul din VFP se foloseste "DRIVER = {SQL Server};" dar nu merge fara sa selectez manual DSN (am definit una)

Am ultima versiune de SSX cu SP3.

 2/16/2009 1:39:54 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Probleme cu SQLSTRINGCONNECT
 (N/A)
 johny25 wrote
 johny25 wrote

Bineinteles ca nu !

Am vorbit la general. In loc de myusername am numele de user cu care ma conectez la server ,s.a.m.d.

M-am uitat si in exemplul MySQLDemo la metoda app.connecttoserver.Stringul meu arata cam la fel.Diferenta este

"Driver={MySQL ODBC 3.51 Driver};"

si eu nu stiu ce driver sa folosesc. In exemplul din VFP se foloseste "DRIVER = {SQL Server};" dar nu merge fara sa selectez manual DSN (am definit una)

Am ultima versiune de SSX cu SP3.


1. SSX (Sql Server Express) are, pana acum, doua versiuni: 2005 si 2008.

Pentru 2005 (SQL Server Native Client 9.0)
Driver
={SQL Native Client};Server=myServerAddress;Database=myDataBase; Uid=myUsername;Pwd=myPassword;

Pentru 2008:
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

Driverul ODBC pentru SQL Server 2000 ({SQL Server}) functioneaza si cu 2005 si 2008.
SQL Server Native Client 10.0 functioneaza si cu 2000 si 2005.

Daca ai facut un DSN care se conecteaza, deschide fisierul dsn cu un texteditor (notepad) si vezi ce driver are, daca nu tii minte ce driver ai selectat la crearea dsn-ului.
Fisierul se gaseste in Program Files\Commnon Files\ODBC\Data Sources\

2. Stringurile de conectare sunt specifice fiecarui server, nu poti construi stringul pentru MSSQL dupa modelul celui de la MySQL.


Daniel Buduru
 2/16/2009 12:38:55 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Cind am comparat stringul de conectare din MySQLDemo am facut-o doar pentru a sesiza diferenta dintre drivere.

Am testat codul meu pe inca 3 PC-uri cu SSX 2005 SP3 si pe unul cu SQL 2005 Standard si am obtinut acelasi rezultat.

Chiar vreau sa ma pot conecta la server fara DSN.

Totusi exemplul din VFP pentru SQLSTRINGCONNECT specifica foarte clar : "The following examples show how you can use the SQLSTRINGCONNECT( ) function without a Data Source Name (DSN)."

La mine de ce nu merge ?

Daca cineva a reusit sa se conecteze fara DSN, il rog sa-mi spuna si mie stringul de conectare !

Va multumesc !

 2/16/2009 6:21:27 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (Romania) Modified By Grigore Dolghin  on 2/16/2009 7:23:07 PM)
Stringul de conectare pe care il ai tu este corect. Mi-aduc aminte ca facea figuri daca avea spatii in el, deci scoate spatiile alea de dinainte si de dupa { }.

Daca tot nu merge, atunci executa in prealabil chestia asta:

SQLSetProp(0, "DispLogin", 3) && linia asta impiedica aparitia ferestrei de unde iti alegi dsn-ul ala
lnHandle = SQLSTRINGCONNECT(stringul tau de conectare)
If lnHandle <0
Aerror(laError)
Messagebox(laError[1,2])
Endif

Si spune-ne si noua care e mesajul afisat in messagebox.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/16/2009 7:53:33 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Incredibil !!!

Era de la cele 2 spatii ! "DRIVER  =  {SQL Server};" ;

Cu spatiile si cu linia pe care mi-ai dat-o SQLSetProp(0, "DispLogin", 3) primesc mesajul de mai jos :

Connectivity error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

Acum ma pot conecta fara DSN (le-am sters toate pe care le-am facut eu).

Va multumesc !

 2/17/2009 8:23:39 AM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (Romania)
Mdah. Nu e prima oara cand vad ca exemplul din Help e gresit.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/17/2009 7:25:28 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Va rog sa imi permiteti inca o intrebare legata de acest subiect.

In momentul in care aplicatia mea VFP incearca sa se conecteze la SQL Server, aceasta practic se blocheaza si nu stiu de ce.Chiar si un timer care se executa se blocheaza.

In exemplul atasat Exemplu.rar am pus un form ce demonstreaza aceste lucruri. Stringul de conectare din form (de fapt serverul acela nu exista) este gresit pentru a determina blocarea aplicatiei. Chiar si cu un string bun tot se blocheaza aplicatia pina la primirea mesajului de la sistem.

Va multumesc !

 

Exemplu.rar 
 2/18/2009 12:03:02 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (Romania)
Pai... aplicatia asteapta raspuns de la server. Ideea e ca dupa comanda de conectare ai niste cod care descarca date din server; ca atare, vrei-nu vrei trebuie sa astepti conectarea. Daca vrei sa reduci timpul de asteptare, poti sa executi un SQLSETPROP(0, "ConnectTimeOut", 5), de exemplu (valoarea implicita este 15 si inseamna numarul de secunde dupa care foxpro o sa renunte. Dar asta n-o sa-ti reduca timpul cat aplicatia "este blocata" dupa cum zici tu. In realitate nu e blocata, ci asteapta un raspuns de la server. Daca raspunsul ala vine in 5 secunde, aia e - astepti.

Intrebarea e interesanta, totusi. Ce ai vrea sa faca aplicatia in timpul cat asteapta? Sa execute codul care urmeaza dupa SQLSTRINGCONNECT?

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/18/2009 2:33:45 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Inainte de a se executa SQLSTRINGCONNECT, in exemplul meu am pus o linie care nu se executa : thisform.container1.Visible=.T.

In acel container as fi vrut sa pun un progress bar sau ceva asemanator care sa arate ca PC-ul lucreaza pina primeste raspunsul de la server.De ce linia de mai sus practic nu se executa pt ca este inainte de comanda SQLSTRINGCONNECT ?

SQLSETPROP(0, "ConnectTimeOut", 5) mi se pare prea putin timp si totusi cele 5 secunde trec destul de greu pina afli raspunsul de la server...In timp ce astepti, eu as prefera sa vad totusi un fel de progres sau ceva asemanator care sa-mi arate ca aplicatia ruleaza si nu este blocata.

Ce se intimpla cu un timer care face altceva mai important decit sa genereze numere random? Se opreste si el ?

 2/18/2009 5:39:38 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (Romania) Modified By Grigore Dolghin  on 2/18/2009 6:47:05 PM)
In realitate se executa, doar ca nu se face refresh-ul formului. Adauga ThisForm.Draw() si DOEVENTS. Chestia e valabila nu numai pentru situatia ta, ci pentru orice situatie in care VFP ruleaza ceva care ii capteaza toata atentia (FOR...ENDFOR, SCAN...ENDSCAN, etc).

Iar legat de timer, well, multithreading-ul ar rezolva problema ta. Din pacate VFP nu e multithreaded, asa ca... bad luck. Am vazut pe net (si mi se pare ca si aici pe forum) o clasa cu API care facea multithreading, dar nu bag mana in foc pentru ea (eu n-am folosit-o niciodata).

(Edit): Inca ceva. In principiu n-ar trebui sa te ingrijoreze timpul de conectare, pentru ca ala ar trebui sa fie mic. Daca e mai lung de o secunda, doua, ai o problema, dar de cu totul alta natura: tre'sa te uiti de ce naiba nu raspunde serverul ala la timp. Aplicatia aia demo cu mysql se conecteaza la un server in new jersey. Si totusi... porneste in mai putin de o secunda. Daca o faci local, se conectaza instantaneu (tocmai am testat - conectarea la un server local dureaza 0.00001 secunde - a trebuit sa pun set decimals to 18 ca sa pot vedea, altfel intorcea 0), iar la serverul firmei dureaza 0.00003 secunde).

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/18/2009 7:29:04 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Spune-mi te rog cum se numeste clasa API care face multithreading si daca se poate vreun link....

Multumesc.

 2/18/2009 8:38:14 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Probleme cu SQLSTRINGCONNECT
 (Romania)
http://www.codeplex.com/mtmyvfp

Iti doresc succes.

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 2/18/2009 9:54:27 PM
User is offlinejohny25
69 posts


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)

Iti multumesc foarte mult pentru toate raspunsurile!

Intr-adevar mi-ai fost de mare ajutor cu SQLSTRINGCONNECT.

 8/7/2011 4:49:56 PM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)
Am intampinat si eu probleme de genul acesta(fara conexiune catre server) si asteptam nu mai putin de 45 secunde pana se dezghetza aplicatia !! Bunnnn.
In situatia mea se trece pe un al doilea server si daca nici acela nu este UP, atunci inca 45 de secunde este intzepenita aplicatia :))
Va dati seama ca a trebuit sa pun un progressbar sa nu arunce utilizatorul cu monitorul pe fereastra. Credeti-ma! am salvat multe capete sparte cu progressbar-ul acela.
In final, pe langa progressbar am incercat sa limitez timpul de raspuns cu SQLSETPROP(0, "ConnectTimeOut", 5), insa la mine nu merge in ruptul capului.
Care sa fie explicatia? ce ar trebui sa mai setez ca sa remediez situatia asta paranormala?
 8/13/2011 1:54:35 AM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Probleme cu SQLSTRINGCONNECT
 (N/A) Modified By LAU  on 8/13/2011 2:10:34 AM)
"In realitate se executa, doar ca nu se face refresh-ul formului. Adauga ThisForm.Draw() si DOEVENTS. Chestia e valabila nu numai pentru situatia ta, ci pentru orice situatie in care VFP ruleaza ceva care ii capteaza toata atentia (FOR...ENDFOR, SCAN...ENDSCAN, etc)."

1. La mine nu functioneaza, tot ingheata... gresesc undeva

2. Exista vreo diferenta intre Sqlconnect() si Sqlstringconnect() ?

3. Nu reusesc in ruptul capului sa micsorez limita de asteptare pentru o conectare nereusita.
SQLSETPROP(0, "ConnectTimeOut", 5 )

desi:
nSet=SQLSetprop(0, "ConnectTimeOut", 5 )
If nSet > 0
Messagebox("ConnectTimeOut: setat la 5 s",16,"")
Else
Messagebox("ConnectTimeOut: 0",16,"")
Endif
imi intoarce: ConnectTimeOut: setat la 5 s

Multumesc
 8/13/2011 2:17:36 PM
User is offlineLAU
240 posts
www.zof.ro
4th


Re: Probleme cu SQLSTRINGCONNECT
 (N/A)
Pentru punctul 2. da exista o mare diferenta: Sqlstringconnect() merge si fara Sqlconnect() dar invers nu are cum

Conexiune=Sqlstringconnect(nConn1, .T.)
if Sqlconnect(Conexiune) <=0
messagebox('Nu ma pot conecta la baza de date",16,"Sorry")
endif
  Visual FoxPro  Client/Server  Probleme cu SQL...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement