Forum Delphi.cz

Databáze => MySQL => Téma založeno: hlucheucho 24-03-2014, 11:24:01

Název: C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 11:24:01
Ahoj,

používám C++ Builder XE5 Proffesional ed. který bohužel nemá komponenty pro vzdálené připojení k MySQL. Dokoupit rozšiřující balíček nemohu z finančních důvodů. Dále jsem zkoušel MySQL Connector C++ nainstalovat ze zdrojáku, což se nezdařilo. Při překladu jsem dostal 13 chyb převážně odkazujících do souboru stdlib.h.  Jak tuto situaci řešit?

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: TLama 24-03-2014, 11:30:25
Ahoj,

používám C++ Builder XE5 Proffesional ed. který bohužel nemá komponenty pro vzdálené připojení k MySQL. Dokoupit rozšiřující balíček nemohu z finančních důvodů. Dále jsem zkoušel MySQL Connector C++ nainstalovat ze zdrojáku, což se nezdařilo. Při překladu jsem dostal 13 chyb převážně odkazujících do souboru stdlib.h.  Jak tuto situaci řešit?

hu

Asi nejudržovanějším open source balíkem pro práci s několika DB podporujícím i C++ Builder je ZeosLib (http://sourceforge.net/projects/zeoslib). Nemyslím si ale, že by začali vykřikovat do světa podporu XE5,
už kvůli té zbastlené mobilní s***ce (i když kdoví, možná se pletu).
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 12:26:50
Možná jsem trochu natvrdlej. Co je myšleno mobilní .... ?

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: TLama 24-03-2014, 12:36:36
Co je myšleno mobilní .... ?

Tím jsem myslel, že nevím, zda autoři ZeosLib budou tvrdit, že je jejich balík kompatibilní s Delphi / C++ Builder XE5, byť by pro Windows desktop být mohl. Jestli se chystají ten balík
upravit i pro mobilní část Delphi nebo C++ Builderu nevím a tudíž u nich nemusí být vidět hláška typu "Delphi / C++ Builder XE5 ready".
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 13:49:25
Z "multiplatformity" od Embarcadera moc nadšený nejsem. Si často říkám, jestli jsem neměl přejít na MS VS. Tyhle problémy s připojením k DB by mne zcela minuly. :( Pozdě bycha honit

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 16:06:24
Už několikátá chyba :(  Teď nenašel ZPlainMySqlConstants.dcu.  Taky jsem ho nenašel, v celém počítači. Království za něco fukčního.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Radek Červinka 24-03-2014, 16:10:13
Z "multiplatformity" od Embarcadera moc nadšený nejsem. Si často říkám, jestli jsem neměl přejít na MS VS. Tyhle problémy s připojením k DB by mne zcela minuly. :( Pozdě bycha honit
hu

Nevím na co TLama zase narazi (jelikoz mas Prof verzi a nijak to s tim nesouvisi a stejně nechápu co se mu nelíbí), ale pokud pouzijes ADO, tak mas skoro stejnou konektivitu co pouziva MS. Nebo můžeš použít třeba http://www.audio-data.de/delphi/mysql/mysql.zip (http://www.audio-data.de/delphi/mysql/mysql.zip) MySQL wrapper.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 16:28:47
Funkce z MySQL.dll, které představují C API, mohu volat přímo. Akorát to znamená vybudovat si svůj C++ Connector z API funkcí. Je to jako dělat komunikaci přes COM s WinAPI - hromada práce, kterou už někdo udělal.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: TLama 24-03-2014, 16:34:57
Si často říkám, jestli jsem neměl přejít na MS VS.

To si říkám dlouho a už se na to připravuju :)

Nevím na co TLama zase narazi (jelikoz mas Prof verzi a nijak to s tim nesouvisi a stejně nechápu co se mu nelíbí)

Jak zase ? Je vidět, že ty jsi zkrátka člověk do nepohody ;D

Tentokrát jsem na něj narazil jen kvůli tomu, že by autoři ZeosLibu nemuseli mít hotovou verzi knihovny, která by jej podporovala a tudíž by možná nemuseli mít
oficiálně uvedenou podporu pro Delphi XE5 - a to proč ? Kvůli báječnému a všemi chválenému mobilnímu balíku.

http://forum.delphi.cz/index.php/topic,14276.msg85328.html#msg85328 (http://forum.delphi.cz/index.php/topic,14276.msg85328.html#msg85328)

Hlavně už to prosím nerozváděj. Nemám potřebu tady trávit čas nad nějakým pošťuchováním.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 16:43:28
Už několikátá chyba :(  Teď nenašel ZPlainMySqlConstants.dcu.  Taky jsem ho nenašel, v celém počítači. Království za něco fukčního.
Schvalne jsem si stahnul zip z URL, ktere do tohoto threadu daval TLama, rozbalil ho a samozrejme, ze ten soubor tam je ve folderu src\plain\ tak to nevim, kam se koukas...
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 16:48:47
ZPlainMySqlConstants.pas jsem našel v adresáři, který píšeš, ale s příponou dcu jsem nenašel ani volbou "hledat" z nab. Start Windows

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 16:57:28
ZPlainMySqlConstants.pas jsem našel v adresáři, který píšeš, ale s příponou dcu jsem nenašel ani volbou "hledat" z nab. Start Windows
Aha, no to bych ani u zdrojovek od knihovny nikdy nehledal - od toho mam zdrojovky, abych si je prelozil. Ale na to potrebujes Delphi nebo nekoho, kdo ti to ve vhodne verzi prelozi...
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Ondřej Pokorný 24-03-2014, 17:06:04
ZPlainMySqlConstants.pas jsem našel v adresáři, který píšeš, ale s příponou dcu jsem nenašel ani volbou "hledat" z nab. Start Windows
Aha, no to bych ani u zdrojovek od knihovny nikdy nehledal - od toho mam zdrojovky, abych si je prelozil. Ale na to potrebujes Delphi nebo nekoho, kdo ti to ve vhodne verzi prelozi...

Já mám za to, že C++ Builder přeloží normálně .pas soubory. Nebo se pletu?
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 17:09:25
myslím, že dcu v Delphi je něco jako h v C++. Když některý z těchto souborů chybí, pak překlad končí chybou.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: TLama 24-03-2014, 17:11:07
myslím, že dcu v Delphi je něco jako h v C++. Když některý z těchto souborů chybí, pak překlad končí chybou.

hu

Neé. DCU je doslova Delphi Compiled Unit, což je de-facto přeložený Delphi unita. Delphi nic jako header soubory nemají. Pokud umí C++ Builder překládat Delphi zdrojáky,
pak bys měl mít vše součástí (pár dní naz5 jsem Zeos instaloval do Delphi a jsem si jistý, že mi nic nechybělo).
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 17:50:51
myslím, že dcu v Delphi je něco jako h v C++. Když některý z těchto souborů chybí, pak překlad končí chybou.
Nez .h, to je spis .obj - to uz je potrava pro linker, ne pro prekladac.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 18:37:18
Všiml jsem si, že v jednom adresáři jsou pas a v jiném dcu.  S vyjímkou tohoto, co nemůže najít, jsou "do páru" - se stejným názvem jeden s příponou dcu a jeden s příponou pas.  Kdyby nebyly ty dcu potřeba, tak tam nejsou.  Prostě ho to chce a já nevím, kde ho vzít.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 18:46:26
Všiml jsem si, že v jednom adresáři jsou pas a v jiném dcu.  S vyjímkou tohoto, co nemůže najít, jsou "do páru" - se stejným názvem jeden s příponou dcu a jeden s příponou pas.  Kdyby nebyly ty dcu potřeba, tak tam nejsou.  Prostě ho to chce a já nevím, kde ho vzít.
Jestli jsi pouzil ten .zip, co na nej odkaz poslal TLama, tak ten zadne .dcu neobsahuje. Takze pokud tam nejake mas nevytvoril jsi je buhvi jak, tak by to znamenalo, ze ti je prelozil C++ Builder (snadno overis tak, ze mu vsechny .dcu smazes a podivas se, co se stane). A je-li tomu tak, pak pravdu ma Oxo a C++ Builder umi prekladat .pas a pak by mu melo stacit jen vhodne nastavit cesty ke vsem adresarum, ve kterych lezi ty zdrojovky.

A v konfiguraci projektu nejlepe nastavit, at dava ty prelozene .dcu nekam stranou a neprasi je do zdrojovek...
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 19:10:47
Máš pravdu, předsedo. :)

Teď to zkouším s jiným počítačem, zip po rozbalení žádné dcu neobsahuje. Tady mám starší verzi C++ builderu (2010). Hlásí, že mu chybí jiný soubor. Každá verze vývojového prostředí se chová jinak  ::) Pak je na místě otázka, proč ho nestvoří.

Na kompilaci ZPlain.bpl napsal Success (dostal jsem se o balíček dál než s XE5) a na kompilaci ZDbc.bpl píše, že nemůže najít ZAdoToken.dcu. Jsem z toho jelen.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 19:15:50
že nemůže najít ZAdoToken.dcu.
Podivej se, kde je ZAdoToken.pas, pridej jeho adresar do search path a to opakuj tak dlouho, nez ho zlomis
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 24-03-2014, 19:19:30
Máš pravdu, předsedo. :)
Proc predsedo :o Predsedou, a to prozatimnim, jsem byl naposledy nekdy v roce 1990, kdyz jsme zakladali asociaci Johna von Neumanna, jako profesni sdruzeni programatoru na obranu jejich prav, nez se soft dostal do novely autorskeho zakona. Pak jsme si rekli, ze to vlastne nema cenu, navic se do cela drali klasicti funkcionari - svazaci  >:(
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 24-03-2014, 19:28:49
citát - Vesničko má středisková.

Všiml jsem si, že v adresáři parsesql je ZAdoToken.pas, ale v contains ZPraseSql.bpl chybí. Doplnil jsem ho tam a zkompiloval všechny bpl úspěšně.  Vypadá to nadějně.

Edit: zdařila se i instalace. Zatím děkuji za pomoc

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 25-03-2014, 11:03:04
 >:( mne to začíná ....
Na počítači v práci se nedaří nainstalovat: Aplikace nemohla být spuštěna, protože součást ZDbc.bpl nelze najít. Potíže pravděpodobně odstraníte opětovnou instalací aplikace.
Nechápu, má ho ve stejným adresáři jako ostatní bpl instalace Zeos. Dělám všechno jako včera večer doma.
Dvě instalace C++ Builderu 2010 se chovají rozdílně.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 25-03-2014, 11:58:07
>:( mne to začíná ....
The package hell, co bys od toho chtel :)

Jestli si nepotrebujes hrat na kladece komponent, tak vrele doporucuju nic nikam neinstalovat, nastavit si search path a kompontenty si vytvaret a likvidovat v run-time. A je po problemech.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 25-03-2014, 12:22:40
Co bych chtěl... No přece aby to fungovalo. Asi se "snížím" k API. Za tu dobu neúspěšných pokusů by to už fungovalo.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 25-03-2014, 17:17:20
Se to po pauze povedlo nainstalovat. Jen nechápu, jak se to používá
Zkoušel jsem ADO. User Friendly to není  :(

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Ondřej Pokorný 25-03-2014, 18:04:07
Opět jeden adept na "udělejte mojí práci za mě, nechci se tím zabývat" ???
Co já vím, má ZeosLib nějakou dokumentaci a nějaké příklady...

RTFM:
http://sourceforge.net/p/zeoslib/code-0/HEAD/tree/trunk/documentation/ (http://sourceforge.net/p/zeoslib/code-0/HEAD/tree/trunk/documentation/)
http://sourceforge.net/p/zeoslib/code-0/HEAD/tree/trunk/examples/ (http://sourceforge.net/p/zeoslib/code-0/HEAD/tree/trunk/examples/)
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 25-03-2014, 19:11:48
Nejsem Delphař. Luštit Delphi kód v Notepadu je peklo, dvojnásob pro někoho, kdo Delphi nezná.

Neúspěšné kroky:
- instalace C++ connectoru s použitím Cmake a C++ builderu (2010 a XE5) - 13 chyb odkazuje do stdlib.h
- instalace C++ conectoru s použitím Cmake a MS VS 2010 - tvrdí, že je problém s licencí. Produkt je licencován a řádně instalován
- instalace zeoslib komponent - po zdlouhavém úsilí a přestávce se nakonec instalace zdařila. Nemám funkční aplikaci, k tomu nepředvidatelné chování (jednou jde instalovat, jednou ne) - takže slepá ulička

Úspěšné kroky:
- instalace C++ connectoru s použitím Cmake a MS VS 2008, funkční konzolová aplikace

Nadějné:
- použití ODBC - instalace driveru bez potíží, nastavení také. Testovací aplikace není dokončena (to až zítra). Bohužel to není "user friendly". Představa, že budu uživateli po telefonu radit co stáhnout a co a jak nastavit, se mi nelíbí. Dělat nějaký sofistikovaný instalátor taky nebude žádná výhra.

Myslíš, že by tolik slepých uliček prošel někdo, kdo chce dostat hotové řešení bez úsilí? Seru se s tím několik dní a jediný výsledek je možnost použít velmi starou verzi MS VS.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Ondřej Pokorný 25-03-2014, 23:06:57
Omlouvám se za možná až trochu nepřátelskou reakci.
Jen pár tipů:
- Kolik řečí umíš, tolikrát jsi člověkem... Stejné platí i pro programování.
- C++ Builder otevře pas soubory s podporou zvýraznění syntaxe.
- Když to děláš už několik dní, tak by možná stálo zato přehodnotit variantu dokoupení FireDAC nebo UniDAC nebo něčeho s dokumentací pro C++ Builder. Nevím sice, jakou máš hodinovou sazbu, ale možná by se ti to už finančně vyplatilo ;)

Ono těžko radit někomu, pro koho
- dokoupit komerční produkt není finančně možné
- použít MySQL C API je moc práce
- nainstalovat a nastudovat si free knihovnu je téměř nemožný úkon
- použít ODBC nepřipadá v úvahu kvůli složitější instalaci na straně klienta
:)

Mimochodem, abych byl tedy i k něčemu užitečný a jen blbě nekecal:
https://www.google.com/search?q=mysql+odbc+silent+install (https://www.google.com/search?q=mysql+odbc+silent+install)
http://karcollection.blogspot.co.at/2012/05/mysql-silent-installation-in-windows.html (http://karcollection.blogspot.co.at/2012/05/mysql-silent-installation-in-windows.html)
Konkrétně tě zajímá tento řádek:
msiexec.exe /i  %~dp0mysql-connector-net-6.3.8.msi /qn
a parameter "/qn"

Jak to na straně klienta spustit, už je na tobě (.zip s .bat skriptem nebo dokonce vlastní exe, které se o všechno postará...).
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Stanislav Hruška 26-03-2014, 09:16:27
Citace
Luštit Delphi kód v Notepadu je peklo
Použi PSPad.
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Radek Červinka 26-03-2014, 10:55:10
Se to po pauze povedlo nainstalovat. Jen nechápu, jak se to používá
Zkoušel jsem ADO. User Friendly to není  :(

hu

Já nevím, ale svihnout na formular TAdoConnection a TAdoDataset, propojit  a v nem nastavit SQL, fakt neni user Friendly?

Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 26-03-2014, 13:43:02
Samotné použití ADO problém není. Jde o kroky "vně" aplikace, které musí uživatel udělat. Postupoval jsem podle http://forum.delphi.cz/index.php?topic=9573.0;wap2.  Jen si neumím představit, že tohle budu někomu popisovat po telefonu a on to udělá bezchybně aby to fungovalo.  Bohužel tu mám i uživatele kteří mají problém i se dvěma jednoduchými kroky: zkopíruj  exe z "flešky" a vytvoř zástupce na ploše.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: pf1957 26-03-2014, 14:41:41
Samotné použití ADO problém není. Jde o kroky "vně" aplikace, které musí uživatel udělat. Postupoval jsem podle http://forum.delphi.cz/index.php?topic=9573.0;wap2.  Jen si neumím představit, že tohle budu někomu popisovat po telefonu a on to udělá bezchybně aby to fungovalo.  Bohužel tu mám i uživatele kteří mají problém i se dvěma jednoduchými kroky: zkopíruj  exe z "flešky" a vytvoř zástupce na ploše.
Ja teda vubec nerozumim, co to delas za soft a kdo jsou tvoji uzivatele....

Kdyz byla pred lety jeste MySQL zadarmo, tak jsme se k ni pripojovali, pres jednu DLL s klientem, ktera byla soucasti distribuce MySQL Serveru a pomoci ZEOS komponent, konkretne  TZConnection, par typu TZQuery.

A od uzivatele jsme chteli akorat Host, Port, Database, UserName a Password a to si ten BFA bude muset nastavit bud jak bud bez ohledu na databazi.

Nicim dalsim jsme BFA nezatezovali, nerkuli BFU  :o
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 26-03-2014, 19:31:37
Po zkušenosti s instalací nechci o ZEOS komponentách ani slyšet.
Výčet možností se zúžil:
1. zkusit C API. Dll je zkompilovaná pro MS VS, takže potenciální problém.
2. ADO funguje, byť s výhradou složitější instalace (instalace ovladače, nastavení).

Delphi se učit nehodlám - nevidím v tom přínos pro mou práci. Zajímavější je pro mne přeučení se na MS VS. Omezí se tím problémy s přenositelností C/C++ kódu - Návodů, postupů a hotových řešení je pro MS VS na internetu hromada, pro C++ Builder poskrovnu.

S těmi uživateli to byla trochu nadsázka.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Daniel_Andrascik 27-03-2014, 08:47:12
hmm, zeos sa da puzivat i bez instalacie. Pozivam uz roky. Stiahnem najaktualnejsiu verziu pripadne lubovolnu pozadovanu, hodim ju do podadresara a nastavim v projekte vyhladavacie cesty do vsetkych podadresarov zeos kniznice (su tusim 4 alebo tak nejako). A ked sa vobec nechcem srat z komponentami, co ja osobne skoro nikdy, tak pouzijem ZDBC vrstvu vid. http://archive.is/KOWz5 (http://archive.is/KOWz5) Je to sice v delphi, ale tych par riadkov musi pochopit akykolvek ceckar 
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 27-03-2014, 11:05:14
ADO přineslo i výhodu: snadné zobrazení dat - v tabulce nebo grafu. Nastavené během chvilky.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: hlucheucho 16-07-2014, 14:06:44
Po problémech popsaných v http://forum.delphi.cz/index.php/topic,14406.15.html jsem od použití komponent vč. ADO upustil a použil jsem C API podle http://programujte.com/clanek/2009052300-zakladni-implementace-mysql-v-c-c/.  Jsou potřeba 3 kroky:
1. libmysql zkopírovat do adresáře kam C++ Builder vytvoří exe aplikace
2. použít    implib libmysql.lib libmysql.dll  , získanou libmysql.lib přidat do projektu
3. nastavit "include path" do adresáře kam MySQL instaloval hlavičkové soubory ( C:\Program Files\MySQL\MySQL Server 5.6\include )

Sice se to nedá "rychle naklikat", ale chodí to bez bádání. Instalace pro uživatele bude jednodušší - nemusí tvořit zdroj dat ODBC.

hu
Název: Re:C++ Builder XE5 a vzdálená MySQL
Přispěvatel: Daniel_Andrascik 20-07-2014, 09:15:27
Tak si na to nakoniec dosiel sam ;) Vyhybam sa vsetkym klikackam ako sa len da. ADO by som pouzil snad jedine k Accessu a ten sa urcite vyuzivat nechystam. V druhom rade drvivu vacsinu nevizualnych komponent aj tak tvorim rucne v kode az za behu aplikacie. Niet nad to ked si to clovek paru riadkami v kode sam zostavi, ma to plne pod kontrolou, vie kedy sa mu to vytvori, ako sa mu to vytvori, da sa to aj brejknut a odkorokovat atd... Ano, tabulka a graf sa ti sice sam nezobrazi, ale opat si to radsej napisem v kode, ten jeden cyklus for este zvladnem. A uz sme tu niekde riesili ako taketo zobrazenie priohnut pre nejaku speci poziadavku a moc to neslo a tolko zbytocneho trapenia. V tretom rade vacsina mojich aplikacii je robena ako tzv. portable. Este nikdy som nerobil k nim instalatory. Vzdy je to len zipko, ktore sa rozbali a maximalne sa apka pri prvom spusteni nieco opyta a potom to uz ide. Vytvorenie ODBC zdroja sice nie je zrovna najslozitejsie, ale kazdy uzivatel ma iny windows a stale nove windowsi pribudaju. Dnes uz mam problem pomoct zakaznikovy cez telefon nastavit IP-ecku alebo setric obrazovky, pretoze kazdy zasrany windows to ma niekde inde... Takze drzim palce a nerob si nikdy starosti s tym ze sa to neda rychlo naklikat ;)