Autor Téma: Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni  (Přečteno 3921 krát)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2587
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Ahoj vsichni,

kdyz necham konfiguraci FD jak je, jen specifikuju MSSQL jako BaseDriverId, tak si FD nejak vyberou z dostupnych driveru, ale na prvni pohled do zdrojovek se mi nevede zjistit, kde to delaji, ani jak si aspon zalogovat jmeno ODBCDriveru, ktery pouzil.

Nevi o tom nekdo neco?


Ď, pf


Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2587
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #1 kdy: 07-06-2018, 20:59:17 »
Excellent
Rated 1 time
Ziskas napr. SQL Server Native Client 11.0. Pokud hledas neco jineho, zkus presneji popsat co ;)
Hledal jsem presne tohle!

Skoro bych rek, ze pri bkpt po connectu jsem v evaluate okne bubaku tohle takhle pretypovaval a marne, ale na bubak to svadet nemuzu, protoze kdyz jsem tam zadal Tvuj kod, tak funguje spravne.

Nesmirne ti dekuji, spravil jsi nam na konci 10h pracovniho dne naladu




Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4407
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #2 kdy: 07-06-2018, 21:29:34 »
OT
Citace
Neni vubec zac!
Lepšie je hovoriť/písať "Rado sa stalo" To prvé negatívne programuje mozog. Nie je to z mojej hlavy, ale verím tomu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #3 kdy: 07-06-2018, 21:30:53 »
Excellent
Rated 1 time
Jinak ještě doplním, že ten driver obsahuje

Driver.Messages, což je nějaký následník TStrings a jsou tam informace typu

Kód: [Vybrat]
Loading driver MSSQL ...
  Loading odbc32.dll driver manager
  Creating ODBC environment handle
  Searching for ODBC driver ...
    Checking for ODBC driver [SQL SERVER NATIVE CLIENT 11.0] ...
      Found [SQL Server Native Client 11.0]

a jde vidět co zkoušel hledat.
Embarcadero MVP - Czech republic

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4407
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #4 kdy: 07-06-2018, 22:43:35 »
Po anglicky neviem. A stačí "Rádo se stalo". Nejde o to ako to znie, ale aký to má v sebe obsah, význam. Písal som programovaní mozgu. Doslovne.
Skús si niekde zohnať knižku "Trhák aneb 21 kapitol o vašem mozku - Jiří Vokáč Čmolík. Už minulý rok malo byť 6. vydanie a stále nič. Budeš vedieť o čo mi ide.
Dobrú noc 8)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2587
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #5 kdy: 08-06-2018, 07:24:56 »
Coz je objekt urcen k logovani. Jen je Ti to k nicemu stejne tak jako metoda FindBestDriver objektu TFDPhysODBCDriverBase nebo iterace CliObj objektu ovladace TODBCEnvironment pomoci DriverFirst a DriverNext, protoze FireDAC na vstupu pouziva konstantni retezce v zavislosti na zvolenem typu DBMS.

Pomoci iterace CliObj objektu ovladace TODBCEnvironment pomoci DriverFirst a DriverNext se da ziskat seznam popisu a atributu vsech zaregistrovanych ODBC ovladacu (jenz FireDAC pouziva k porovnani s konstantnimi retezci jim podporovanych ODBC ovladacu).
Ja si myslim, ze je to uzitecna informace - hned jsem ji zalogoval, stejne jako jsme si nechali vypsat seznam ODBC driveru, na ktery FireDAC vidi...

Ja se k tomu nachomejt ve stavu, kdy kolegove nebyly u zakaznika schopni nainstalovat nasi aplikaci, ktera jinak bezne funguje na rade pocitacu a byl docela problem zjistit, proc to nefunguje. Nakonec se jako zdroj problemu jevi ODBC driver, to kolegove overi az dneska.

Takze pro nas by byvalo bylo uzitecne, mit moznost rychle a jednoduse zjistit, co se tam vlastne deje a ze vhodny driver v pocitaci mozna (?) neexistuje. Ja tedy nepamatuju, ze bych nekdy potkal pocitac, na kterem vhodny ODBC driver nebyl, ale buhvi, kdo a jak to nainstaloval.

FireDac zkousi drivery v poradi Native 11, Odbc 13, Odbc 11, Native 10, ....  A na mem pocitaci, kam neinstaluju nic zbytecneho a nic jsem extra nedoinstalovavall, jsou k dispozici prvni 3 drivery a aplikace s nimi pracuje bez problemu.

Tak snad to podezreni na ODBC driver je opodstatnene. Stejnou chybu jsem u sebe vyvolal pri volbe driveru SQL Server.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2587
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #6 kdy: 08-06-2018, 07:59:13 »
nastoupi na radu metoda FindBestDriver pro jejiz volani pouziva FireDAC fixni poradi konstantne definovanych ovladacu
No vzdyt jsem je v predchozim prispevku vypsal, v jakem poradi je zkousi - proste z logu v Messages uvidis, ze se zastavil na necem obskurnim

Citace
A prosty vypis vsech driveru je k nicemu proto, ze pokud vyda MS trebas SQL Server Native Client 12.0
Neni, protoze uvidis, ze v systemu je Native 12 a z predchoziho logu vidis, ze ho FireDAC nezkousel, protoze podporuje max. Native 11, takze vis, ze musis z hrusky dolu a pro tu instalaci predepsat driver rucne  v konfiguraci

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2587
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #7 kdy: 08-06-2018, 09:34:11 »
To je k videni i v Monitoru (resp. FireDAC trace logu).
No vidis, davno jsem zapomel, ze neco takoveho existuje, protoze s FD jsem prisel do styku, kdyz se objevil a kdyz jsem migroval rodinu aplikaci v FIB+ na FD tak, aby bezela s ruznymi DB connectivitami a pak jsem mel roky od Delphi pokoj. Ten monitor jsem tam zaintegroval, ale zrejme nikdy nepouzil, protoze mame vlastni celkem propracovany logovaci subsystem.
Nicmene si myslim, ze je to spis nastroj pro vyvoj nez pro monitorovani provoznich stavu, takze z meho pohledu bylo jednoduzsi si do naseho logu zapsat par radku.


Neni, protoze uvidis, ze v systemu je Native 12 a z predchoziho logu vidis, ze ho FireDAC nezkousel, protoze podporuje max. Native 11, takze vis, ze musis z hrusky dolu a pro tu instalaci predepsat driver rucne  v konfiguraci

Jinak ten zpusob hledani driveru natvrdo je docela zrada. Uznavam, ze z jejich pohledu je to nejjednoduzsi, nemusi se hrabat ve vlastnostech driveru a daji tam jen neco, co videli a mohli si odzkouset, ale...

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2329
  • Karma: 102
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #8 kdy: 08-06-2018, 10:38:48 »
Jinak ten zpusob hledani driveru natvrdo je docela zrada. Uznavam, ze z jejich pohledu je to nejjednoduzsi, nemusi se hrabat ve vlastnostech driveru a daji tam jen neco, co videli a mohli si odzkouset, ale...

Cca 2 roky zpět psal Dmitrij, že třeba nemohou podporovat nejvyšší verzi nějakého ovladače (detaily si nevzpominam), protože je prostě v některých situacích špatná.
Embarcadero MVP - Czech republic

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 412
  • Karma: 5
Re:Jak vyloudit na FD jmeno ODBC driveru, ktery pouzil pro pripojeni
« Odpověď #9 kdy: 08-06-2018, 12:09:08 »
OT
Citace
Neni vubec zac!
Lepšie je hovoriť/písať "Rado sa stalo" To prvé negatívne programuje mozog. Nie je to z mojej hlavy, ale verím tomu.

Hmno, jak bys prelozil do cestiny You're very welcome!? Mam mysleni nastavene na anglictinu a casto mi dela problem psat spravne cesky. Rict neco ve stylu Moc rado se stalo! mi vsak zni o neco hur.

 That's all right.   (Česko-anglická konverzace, str. 27, rok vydání 1984)