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  Functia SQLColu...
 Functia SQLColumns ....
 
 9/27/2011 11:02:36 AM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Functia SQLColumns ....
 (N/A)
Am urmatorul cod :

lnConnectionHandle = SQLSTRINGCONNECT(lcConnectionString, .T.)

/*
- la stringul de conectare am doua variante:

A. acasa - calculator cu Windows XP Professional, Visual FoxPro 9.0 (cred ca fara vreun SP)
- am instalat driverul ODBC 5.1.8 pe 32 de pe pagina oficiala
- am Driver={MySQL ODBC 3.51 Driver}

B. servici - calculator cu Windows 7, Visual FoxPro 9.0 cu SP1
- am instalat driverul ODBC 5.1.8 pe 32 apoi si cel pe 64 de pe pagina oficiala
- am Driver={MySQL ODBC 5.1 Driver}, pentru că dacă puneam 3.51 îmi dădea eroare
*/


/*
OK....
vreau sa obtin informatii despre coloanele native ale unei tabele MySQL
prelucrand campurile COLUMN_NAME, DATA_TYPE, TYPE_NAME, COLUMN_SIZE, DECIMAL_DIGITS, ORDINAL_POSITION din cursorul rezultat
*/

SQLCOLUMNS(lnConnectionHandle, 'personal', 'NATIVE', 'vfpcrs_fields_personal')

/*
Varianta A : totul este OK, pot folosi informatiile din coloanele cursorului 'vfpcrs_fields_personal'
Varianta B : cand fac BROWSE pe cursorul 'vfpcrs_fields_personal', in coloanele de tip text imi apar tot felul de chestii ciudate: stringurile sunt trunchiate (la TYPE_NAME in loc de varchar apare doar varc, toate sunt trunchiate la 4 caractere) sau au caractere in plus (la COLUMN_NAME se vede numele coloanei si inca alte caractere, cred ca non-ascii; daca selectez celula din grid nu se mai vad !!!! dar sunt acolo)
*/

Oare care o fi explicatia?
O fi de la ODBC? Care-i schepsisul cu 3.51 si 5.1 că driverele ODBC le-am luat dintr-un singur loc?
O fi ceva cu seturile de caractere din MySQL și din Windows? Asta cu seturile de caractere inca n-am pătruns-o....

Mentionez ca daca fac SQLExec cu 'select * from personal' informatiile sunt aduse corect cu mica observație că la varianta A se văd diacriticele iar la B sunt înlocuite cu tot felul de ciudățenii ....
Daca trimit informatiile catre browsere web fenomenul este același. Nu-mi văd diacriticele pe sistemul cu Windows 7.

Vă rog să mă ajutati să descâlcesc chestiunea și să fac să meargă treaba și pe Windows 7!
Vă mulțumesc!
 9/27/2011 12:54:55 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Functia SQLColumns ....
 (N/A)
Iti recomand sa eviti SQLColumns() si SQLTables(), pentru ca dupa parerea mea sunt implementarea unui concept gresit din design. Sunt multe tipuri de servere SQL. Unele au mai multe informatii despre coloane decat altele (ceea ce e normal). Problema e ca SQLColumns incearca sa returneze date despre coloane conform structurii cursorului rezultat. Cum informatiile astea vin din backenduri diferite, la unele dintre ele se pierd o parte din info (cele care nu au loc in cursorul rezultat).

Sfatul meu este sa tratezi situatia asta in mod particularizat pentru fiecare backend in parte. Am vazut ca lucrezi cu MySQL. Asta are comanda SHOW COLUMNS, pe care o apelezi cu SQLExec() si-ti intoarce tot despre fiecare coloana. Daca baza de date este InnoDB (si banuiesc ca este; daca e MyISAM, converteste-o urgent), atunci ai la dispozitie o baza de date numita "INFORMATION_SCHEMA", care contine tot ce-ai vrea sa afli despre tabelele tale (inclusiv informatii de genul relatiilor dintre tabele, care coloana cu care). Toate astea n-ai cum sa le obtii cu SQLColumns().

Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 9/27/2011 1:08:28 PM
User is offlineoviciandrus
762 posts
www.comptech.ro
1st




Re: Functia SQLColumns ....
 (N/A)
Mulțumesc pentru răspuns.

La un moment dat așa m-am gandit și eu. Să folosesc comenzi specifice serverului MySQL așa cum am procedat și în PHP. Mă apucasem aseara să studiez toate funcțiile VFP-ului din gama SQL... În concluzie o să am cu două mai puțin de studiat :). Afară cu SQLColumns() si SQLTables().

Mi-ar placea totuși să știu de ce pe XP trebuie să folosesc 3.51 si pe Windows 7 versiunea 5.1 a ODBC-ului. De fapt, dacă mă uit bine în ODBC management așa s-au instalat din același kit de instalare...
 9/27/2011 1:45:12 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Functia SQLColumns ....
 (N/A)
Eu am folosit 5.1 si pe XP si a mers bine.

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

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement