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  Deconectare cam...
 Deconectare cam in lunga din Firebird
 
 1/4/2006 2:55:15 AM
User is offlineVladPop
250 posts
4th




Deconectare cam in lunga din Firebird
 (N/A)
Ma conectez cu un SQLStringConnect() la o baza de date Firebird. Ea este situata local, dar o accesez cu: 127.0.0.1:i:\test\firebird\test2\TEST.FDB.(la database registration info am ales remote la server). Execut un SQLExec() care dureaza aprox. 0.006 sec iar apoi  SQLDisconnect() care dureaza invariabil 6.39 secunde! E un lucru normal?

Vlad Pop.
 1/4/2006 3:02:47 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Deconectare cam in lunga din Firebird
 (Romania)

Vlad eu nu folosesc FireBird ma chinui cu MSDE. Sunt incepator si nu te pot ajuta in problema ta. (Todusi e cam mult pt un disconect cred eu)

Dar m-ar interesa cum ai aproximat timpul de executie al unui SQLExec().


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 1/4/2006 3:13:50 AM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Asta ii tot codul:

cDateConectare="DRIVER=Firebird/InterBase(r) driver;UID=VLAD;PWD=vlad;DBNAME=127.0.0.1:i:\test\firebird\test2\TEST.FDB"

*Incerc sa ma conectez la server
nTimpInit=Seconds()
nHandle=Sqlstringconnect(cDateConectare,.T.)
nTimpFinal=Seconds()-nTimpInit
? "Durata incercare conectare: "+Alltrim(Str(nTimpFinal,10,4))+" secunde."

If nHandle>0 && daca s-a reusit conectarea merg mai departe
    cSelect="SELECT * FROM produse"

    *Execut un select pe tabela produse
    nTimpInit=Seconds()
    =SQLExec(nHandle,cSelect,"tmp_prod")
    nTimpFinal=Seconds()-nTimpInit
    ? "Durata SQLExec: "+Alltrim(Str(nTimpFinal,10,4))+" secunde."
    Select tmp_prod
    Browse Last

    *Ma deconectez
    nTimpInit=Seconds()
    SQLDisconnect(nHandle)
    nTimpFinal=Seconds()-nTimpInit
    ? "Durata deconectare: "+Alltrim(Str(nTimpFinal,10,4))+" secunde."
Else
    =Messagebox("Nu s-a reusit conectarea la server!",0+16,"Eroare conectare!")
Endif


Vlad Pop.
 1/4/2006 3:39:03 AM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Hmmm.... Daca scot 127.0.0.1: si il las sa se conecteze direct la fisier merge instant. Normal as zice eu, insa asta inseamna ca trebuie sa optimizez ceva la server?

P.S. In tabela produse nu am decat doua amarate de inregistrari.

Vlad Pop.
 1/4/2006 9:38:10 AM
User is offlineGhiorghiu Bogdan
928 posts
1st




Re: Deconectare cam in lunga din Firebird
 (Romania) Modified By Ghiorghiu Bogdan  on 1/4/2006 10:40:39 AM)

De ce ai ales FireBird si nu altceva? (MSDE, MySQL, PostgreSQL) Te intreb, nu de alta dar pe mine toti m-au indrumat sa folosesc MSDE.


Ghiorghiu Bogdan >>> Dacă tot te apuci să faci o treabă, fă-o bine de la inceput!
 1/4/2006 10:28:05 AM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Deconectare cam in lunga din Firebird
 (N/A)
Curios, mai ales ca se laudau ca conectarea/deconectarea e atât de rapida incât nu mai e nevoie de "connection pooling"

La mine:

Conectare : 0,0240 s.
Executie: 0,0120 s.
Deconectare: 0,0060 s.

Probabil ca e ceva legat de driver retea, IP local, DNS, firewall

Incearca si ultimul driver ODBC


 1/4/2006 10:49:29 AM
User is offlineDorin Vasilescu
1366 posts
1st




Re: Deconectare cam in lunga din Firebird
 (N/A)
 cyclyman wrote

De ce ai ales FireBird si nu altceva? (MSDE, MySQL, PostgreSQL) Te intreb, nu de alta dar pe mine toti m-au indrumat sa folosesc MSDE.

Eu nu

 

 

 1/4/2006 12:14:03 PM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Driver-ul ODBC a fost de vina. Eu aveam instalat 1.2.00.0069 si am luat de pe situl lor 1.2.00.0070(rulez FB 1.5).


Dar daca tot veni vorba: cum pot stii codul erorii in momentul cand incerc conectarea la server? Ca mie imi returneaza doar un: Connection handle is invalid (Error 1466), dar mie asta nu imi spune daca e oprit serverul, daca baza de date nu exista etc.

Vlad Pop.
 1/4/2006 12:23:49 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Deconectare cam in lunga din Firebird
 (Romania)

lnHandle = SQLConnect(.........)
If lnHandle < 0
AError(gaError)
? gaError[1,2]
EndIf


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/4/2006 12:29:47 PM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Doh! Wasn't that obvious? Mersi mult.

Vlad Pop.
 1/4/2006 1:58:07 PM
User is offlineAlex Dobrin
766 posts
www.algis.ro
1st






Re: Deconectare cam in lunga din Firebird
 (N/A)
Am adaugat-o si la FAQs.
Alex Dobrin
Algis Info
 1/4/2006 3:40:37 PM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Ca o completare, codul respectiv returneaza numarul erorii. In cazul meu, este acelasi cod indiferent daca nu se poate conecta la server sau daca, calea catre baza de date nu e buna. Diferenta consta in doua string-uri in care iti explica in ce consta eroarea si astfel poti identifica exact unde e buba.

P.S. Vezi ca in FAQ ai pus acelasi cod, de doua ori. :)

Vlad Pop.
 1/4/2006 4:37:42 PM
User is offlineAlex Dobrin
766 posts
www.algis.ro
1st






Re: Deconectare cam in lunga din Firebird
 (N/A)
E o mica diferenta intre ele. :)
In primul caz este apelata functia sqlexec() in al doilea sqlconnect(). Pentru ambele modalitatea de identificare a erorii este aceeasi. Le-am pus pe amandoua pentru exemplificare.
Mie codul respectiv imi intoarce textul erorii, nu numarul ei. Problema este cand textul erorii este mai mare de 255 de caractere, pentru ca acesta este trunchiat.
Stiti vreo solutie pentru a afla (afisa) textul complet?


Alex Dobrin
Algis Info
 1/4/2006 5:29:55 PM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
 Alex Dobrin wrote
E o mica diferenta intre ele. :)
In primul caz este apelata functia sqlexec() in al doilea sqlconnect(). Pentru ambele modalitatea de identificare a erorii este aceeasi. Le-am pus pe amandoua pentru exemplificare.

Da, scuze, eu m-am grabit. :)

 
Mie codul respectiv imi intoarce textul erorii, nu numarul ei.

Asa este, dar eu foloseam gaError[1,1] si ala contine nr. erorii. Sau nu?

Vlad Pop.
 1/4/2006 5:53:40 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Deconectare cam in lunga din Firebird
 (Romania)

Gee, man.... array-ul ala are 7 randuri..... Uite-te la randul 5 :)

When an ODBC error numbered 1526 occurs, the array contains one or more rows, one row for each ODBC error. The following table describes the contents of each element.

Element number Description

1

Numeric. Contains 1526.

2

Character. The text of the error message.

3

Character. The text of the ODBC error message.

4

Character. The current ODBC SQL state.

5

Numeric. The error number from the ODBC data source.

6

Numeric. The ODBC connection handle.

7

The null value.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 1/4/2006 6:01:01 PM
User is offlineAlex Dobrin
766 posts
www.algis.ro
1st






Re: Deconectare cam in lunga din Firebird
 (N/A) Modified By Alex Dobrin  on 1/4/2006 7:02:43 PM)
Da. Poti sa apelezi ceva de genul:

MESSAGEBOX("Nr.eroare : "+ALLTRIM(STR(gaError[1,1],5)+CHR(13)+CHR(10)+;
gaError[1,2]+CHR(13)+CHR(10)+;
gaError[1,3]+CHR(13)+CHR(10)+;
"ODBC SQL STATE : "+gaError[1,4]+CHR(13)+CHR(10)+;
"Data source : "+gaError[1,5]+CHR(13)+CHR(10)+;
"Handle : "+gaError[1,6]))

Si ai toate informatiile pe care ti le da aerror.

Daca sunt mai multe erori se modifica numarul randului din sirul gaError (gaError[2,x], gaError[3,x], ...).

Alex Dobrin
Algis Info
 1/4/2006 6:17:01 PM
User is offlineVladPop
250 posts
4th




Re: Deconectare cam in lunga din Firebird
 (N/A)
Da, nenea! Stiu ca are 7 randuri. Credeam doar ca primul rand da nr. erorii. Ca randul 5 imi arata 08004 si 1526 "suna" mai bine pentru un nr de eroare. :)

Vlad Pop.
  Visual FoxPro  Client/Server  Deconectare cam...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement