Autor Téma: delphi myslq  (Přečteno 2633 krát)

dracekvo

  • Host
delphi myslq
« kdy: 29-07-2010, 15:33:00 »
Ahoj, mám tu další problém. je poněkud podivný.

Používám Delphi 7 a MySQL: 5.1.49-community

Zde je můj kód

Kód: [Vybrat]
Connection := TSQLConnection.Create(nil);
    Connection.DriverName := 'dbxmysql';
    Connection.GetDriverFunc := 'getSQLDriverMYSQL50';
    Connection.LibraryName := 'dbxopenmysql50.dll';
    Connection.VendorLib := 'libmysql.dll';
    Connection.Params.Append('Database=' + sqldatabase);
    Connection.Params.Append('User_Name=' + sqluser);
    Connection.Params.Append('Password=' + sqlpass);
    Connection.Params.Append('HostName=' + sqlhost);
    SQLQuery1.SQLConnection:= Connection;

    connection.Open;

    sqlQuery1.SQL.Text:= 'select id, eod, closed from barak';
    sqlQuery1.Open;

a tabulka
Kód: [Vybrat]
+--------------+-----------------------+------+-----+---------+-------+
| Field        | Type                  | Null | Key | Default | Extra |
+--------------+-----------------------+------+-----+---------+-------+
| id           | mediumint(8) unsigned | NO   | PRI | NULL    |       |
| site_country | varchar(1)            | NO   |     | NULL    |       |
| eod          | tinyint(1) unsigned   | NO   |     | NULL    |       |
| closed       | tinyint(1) unsigned   | NO   |     | 0       |       |
+--------------+-----------------------+------+-----+---------+-------+

teď, pokud dám select id, tak vše funguje v pohodě.
když select id, site_country napíše to "Invalid field size"
pokud tam dám třeba select id, eod tak vše taky v pořádku
a select *, nebo select id, eod, closed skončí chybou "Access violation at address 003444EF in module 'dbxopenmysql50.dll'. Read of address 00000001"

dracekvo

  • Host
delphi myslq
« Odpověď #1 kdy: 29-07-2010, 15:36:00 »
jo a malá ukázka dat
Kód: [Vybrat]
+----+--------------+-----+--------+
| id | site_country | eod | closed |
+----+--------------+-----+--------+
|  1 | 1            |   1 |      0 |
|  2 | 1            |   1 |      0 |
|  3 | 1            |   1 |      0 |
|  4 | 1            |   1 |      0 |
|  5 | 1            |   1 |      0 |
|  6 | 1            |   1 |      0 |
|  7 | 1            |   1 |      0 |
|  8 | 1            |   1 |      0 |
|  9 | 1            |   1 |      0 |
| 10 | 1            |   1 |      0 |
+----+--------------+-----+--------+

dracekvo

  • Host
delphi myslq
« Odpověď #2 kdy: 29-07-2010, 16:21:00 »
Tak jsem zjistil, že na PC, kde je win 2003 server a 5.1.28-rc-community to funguje. Mě na ntb s Win7 ne.
Zkusím nainstalovat starší MySQL. Zatím to berte jako vyřešené.

dracekvo

  • Host
delphi myslq
« Odpověď #3 kdy: 22-09-2010, 13:10:59 »
Tak jsem zjistil, že je to verzí mysql serveru. Na MySQL 5.1.50 to hází exception v knihově dbxopenmysql.dll už pri jednoduchém dotazu select * from tabulka.
Teď jsem nainstaloval nějaký 5.0.45 a tam to jde bez problému.

Napadá někoho proč se tak děje?

xyz3

  • Host
delphi myslq
« Odpověď #4 kdy: 22-09-2010, 13:28:00 »
"Read of address 00000001" znamená, že nějaký soudruh udělal chybu. U opensource konektorů do databáze běžný jev.

dracekvo

  • Host
delphi myslq
« Odpověď #5 kdy: 22-09-2010, 13:39:59 »
A nějaké doporučení jak se nakonektit k mysql?
Mě se nedaří najít ani kdo to napsal, jestli třeba nemám nějakou starou verzi a na stránkách nemá novější.

xyz3

  • Host
delphi myslq
« Odpověď #6 kdy: 22-09-2010, 14:11:00 »
Rovnou se na to vykašli. Pokud tvoříš nový projekt, tak MySQL stejně není ta správná volba.

dracekvo

  • Host
delphi myslq
« Odpověď #7 kdy: 22-09-2010, 14:33:00 »
To tvořím, ale potřebuju něco, s čím bude jednoduše komunikovat i php.

xyz3

  • Host
delphi myslq
« Odpověď #8 kdy: 22-09-2010, 14:46:00 »
A PHP umí jenom MySQL ? ;D
Ale každý svého štěstí strojvůdce, já nikoho přesvědčovat nebudu.

pf1957

  • Host
delphi myslq
« Odpověď #9 kdy: 22-09-2010, 14:52:00 »
dracekvo Napsal:

> To tvořím, ale potřebuju něco, s čím bude
> jednoduše komunikovat i php.

Ja bych tedy taky doporucoval si MySQL, kdyz to neni nutne, nic nezacinat :)

My jsme se k ni pred lety pripojovali pres ZEOS komponenty a nebyly s tim problemy. Akorat ze ZOES komponenty maji unikodifikaci ve stadiu alfa...


dracekvo

  • Host
delphi myslq
« Odpověď #10 kdy: 22-09-2010, 15:31:59 »
S čím jsem ještě dělal i v php tak bylo MsSQL, ale to je placený, ne?

Samozřejmě vím, že php dokáže dělat i s ostatníma databázema, ale nemám s nima žádné zkušenosti takže nemůžu posoudit co je nejvhodnější. Abych nedopadl ještě hůře, než s MySQL.

z_o_o_m

  • Host
delphi myslq
« Odpověď #11 kdy: 22-09-2010, 16:42:59 »
MySQL rulez, nikdy sem s tim nemel problemy :) ale jen s PHP ...

pokud neznas HeidiSQL, je to open-source Delphi projekt, treba v tom neco vyctes  8)

Mi.Chal

  • Host
delphi myslq
« Odpověď #12 kdy: 22-09-2010, 21:07:00 »
dracekvo Napsal:
-------------------------------------------------------
> S čím jsem ještě dělal i v php tak bylo MsSQL, ale
> to je placený, ne?

ma i free variantu, ktera ma urcita omezeni



Mi.Chal

  • Host
delphi myslq
« Odpověď #13 kdy: 22-09-2010, 21:08:00 »
z_o_o_m Napsal:
-------------------------------------------------------
> MySQL rulez

pokud mas na mysli nejakou soutez o nejblbejsi softwary, tak tam by se umistila na prednich pozicich

vinca

  • Host
delphi myslq
« Odpověď #14 kdy: 26-09-2010, 17:30:59 »
A. Co je špatného na driveru pro MySQL, který je součástí D7 ?
B. Mohli by páni experti zmínit vhodné databáze pro nové projekty, když je ten MySQL takový hnůj ?
V.

z_o_o_m

  • Host
delphi myslq
« Odpověď #15 kdy: 26-09-2010, 20:14:00 »
Mi.Chal Napsal:
> pokud mas na mysli nejakou soutez o nejblbejsi
> softwary, tak tam by se umistila na prednich
> pozicich

si asi pletes pojmy s dojmy ... sice nejsem databazovej expert, ale
mysql je plne funkcni a konkurencne schopna alternativa k placenym databazovym systemum,
podil mysql na trhu mluvi sam za sebe a pro bezny uziti uplne dostacuje

pokud vim, tak vetsina lidi nepotrebuje Oracle, nespravuje miliony tabulek a miliardy zaznamu
2 Vinca:
nekterych nazoru by sis opravdu nemel vsimat ;)
mysql je dost dobre pouzitelny, hodne rozsireny a nemusis se nekde hledat s nakou free osekanou variantou

z_o_o_m

  • Host
delphi myslq
« Odpověď #16 kdy: 26-09-2010, 20:16:00 »
jeste drobnost, pro pristup do MySQL se da pouzit vicero veci
viz.
http://delphi.about.com/od/mysql/tp/aatpmysql.htm

Mi.Chal

  • Host
delphi myslq
« Odpověď #17 kdy: 26-09-2010, 21:09:59 »
z_o_o_m Napsal:
-------------------------------------------------------
> si asi pletes pojmy s dojmy ... sice nejsem
> databazovej expert, ale
> mysql je plne funkcni a konkurencne schopna
> alternativa k placenym databazovym systemum,

s tim se da souhlasit, databazovy expert by tohle asi nikde netvrdil :)

> podil mysql na trhu mluvi sam za sebe a pro bezny
> uziti uplne dostacuje

hlavni problem mysql vidim v tom, ze standarnde se chova nestandardne a ma ruzne featury, ktere obcas i odporuji standardum. Typicky priklad je treba groupovani, viz
Kód: [Vybrat]
select column1, column2, column3
from table
group by column1, column2

To je proste nesmysl a normalni databaze to nevezme, Mysql ano. Bohuzel na tyhle parodii zacina spousta lidi a povazuje to pitome chovani za standard, pak se divi, kdyz ty dotazy jinde nefunguji. Dalsi perly jsou treba

insert into table(pole_s_datumem) values('30.2.1990')

Ten kram ve vychozim nastaveni afaik misto chyby vyhodi warning a do pole vlozi nejakou defaultni hodnotu.

Takhle by se dalo pokracovat asi jeste dlouho, nejake dalsi perly jsou myslim i ve vedlejsim db foru.


pf1957

  • Host
delphi myslq
« Odpověď #18 kdy: 26-09-2010, 21:59:00 »
z_o_o_m Napsal:
> podil mysql na trhu mluvi sam za sebe a pro bezny
> uziti uplne dostacuje

Je otazka, jestli to, co strikaji PHP strikaci, lze povazovat za bezne uziti databaze...
> nemusis se nekde hledat s nakou free osekanou
> variantou

zato pokud nedelas Open Source, tak si rovnou musis koupit komercni licenci ;)


pf1957

  • Host
delphi myslq
« Odpověď #19 kdy: 26-09-2010, 22:21:00 »
Mi.Chal Napsal:

> hlavni problem mysql vidim v tom, ze standarnde se
> chova nestandardne a ma ruzne featury, ktere obcas
> i odporuji standardum. Typicky priklad je treba
> groupovani, viz

Matne si vzpominam, ze jsem se pred lety v ramci jednoho OSS projektu pokousel implementovat upravy DB schematu, ktere bezne chodily napr. s PostgreSQL a marne: narazil jsem na vypinani/zapinani constraintu. Uz si to moc nepamatuju a je to pro me passe, ale odnesl jsem si z toho dojem, ze pricina byla v dodatecnem dolepeni referencni integrity, kdy si ta MySQL schovavala nektera metadata tak, ze se na ne nedalo dostat...

pf1957

  • Host
delphi myslq
« Odpověď #20 kdy: 26-09-2010, 22:23:00 »
vinca Napsal:

> B. Mohli by páni experti zmínit vhodné databáze
> pro nové projekty, když je ten MySQL takový hnůj

Zalezi, co od DB cekas/potrebujes a kolik jsi ochoten investovat...

mjseven

  • Host
delphi myslq
« Odpověď #21 kdy: 27-09-2010, 19:26:00 »
vinca Napsal:
> B. Mohli by páni experti zmínit vhodné databáze
> pro nové projekty, když je ten MySQL takový hnůj
> ?
> V.

Jako DB bych použil jednu z následujicích:  Firebird, PostgreSql nebo MSSQL. Záleželo by od zadání toho projektu.

Pro připojení komponenty Zeos.
S těma se můžeš připojit ke kterékoliv z uvedených, případně i k MySQL.


pf1957

  • Host
delphi myslq
« Odpověď #22 kdy: 28-09-2010, 21:15:00 »
mjseven Napsal:

> Jako DB bych použil jednu z následujicích:
> Firebird, PostgreSql nebo MSSQL. Záleželo by od
> zadání toho projektu.
>
> Pro připojení komponenty Zeos.
Ja bych s tim v podstate souhlasil: Firebird a PostgreSQL jsou spolu SQLite databaze skutecne zadarmo a do verzi pred Delphi 2009 tj. s ANSI stringy bych se pripojoval taky pres ZEOS. Pres ten se ostatne da pripojit i k tomu MSSQL, SQLite aj. a v ANSI verzich jsme s nimi nikdy nemeli problemy.

Ovsem:

Preferoval bych PostgreSQL, protoze patri do rodiny dospelych DB, jako je Oracle, IBM DB/2 a hojne a bezproblematicky se pouziva i na jinych platformach jako Java, Python, Ruby aj. Ale ZEOS pro unicode jsou jen ve verzi Alfa, takze bych musel koupit nejake komercni komponenty pro pripojeni k D2009+

Firebird je slusna DB, ale ma nektere exoticke vlastnosti, coz rekneme vyvazi, ze narozdil od PostgreSQL, existuje v embedded verzi. Ovsem co jsem videl, tak se pro seriozni nasazeni kupuji komercni komponenty napr. FIB+

MSSQL Express (nebo jak se to ted oficialne jmenuje) bych taky vydejchal, ale nakup komercni licence pro pripad, ze by mi aplikace nabobtnala, uz asi ne. Navic jsme proti MSSQL pouzivali asi 10 let bezproblemove ADO komponenty, ale letos jsme narazili na to, ze neumeji detekovat/ohlasit chybu v triggerech/SP, ktere lezou do jine DB, takze to znamena taky investovat do komercnich komponent.

--

Takze situace pro novejsi verze Delphi je pomerne neradostna. Snad pockat aspon na betu ZEOS komponent a rezignovat na MSSQL, protoze ZEOS pouzivaji nejakou zastaralou DBLib, ktera uz pro MSSQL 2008 neexistuje a nebo koupit komercni komponenty.