Avatar billede x-ile Nybegynder
24. december 2006 - 12:42 Der er 12 kommentarer

Delphi - Connecting til en MySQL database vha BDE

En hjælpende hånd vil være stærkt ønsket ;)

Formål:
At udvikle et kundekartotekssystem.
Midler:
Delphi 7 Enterprise (WinXP)
MySQL 5.0.27-community-nt
MySQL ODBC Driver  3.51

Umiddelbare problem:
Jeg har læst mig igennem utallige forums og indlæg omkring at forbinde Delphi til en MySQL database, dog desværre uden held.

Jeg bruger ovennævnte software, og forsøger at gøre det vha Delphi's medfødte BDE komponenter.

Jeg har været i stand til at finde 2 komplete Delphi projekter der burde kunne forbinde til min database. Min plan var at gennemskue hvordan disse gjorde det og så lærer det derfra.
However, jeg kan ikke få eksemplerne til at virke, hvilket får mig til at tænke på om det er mig der gør noget helt forkert.

Der er ingen problemer når jeg tilgår databasen igennem kommandoprompt, der virker alt fint.
For at visualisere det lidt mere har jeg taget screenshots af mine indstillinger af BDE komponenterne.
www.digital-generation.dk/1.jpg
www.digital-generation.dk/2.jpg
www.digital-generation.dk/3.jpg
www.digital-generation.dk/4.jpg
www.digital-generation.dk/5.jpg

Jeg får ved den ene test en, "Read of adress 00000000" fejl, og i den anden en manglende dll fil.

Hvis nogle kunne give bare det mindste vink om hvad der måske kan være årsagen til dette problem, eller give mig en helt ny måde at komme i kontakt med databasen på vil jeg sætte stor pris på det.

På forhånd mange tak.
Avatar billede kroning Nybegynder
24. december 2006 - 13:25 #1
Ved den sidste test (5.jpg) er der en god grund til at det ikke virker, den er lavet til MySQL 3.
Avatar billede x-ile Nybegynder
25. december 2006 - 00:32 #2
#kroning
Der står da "for Delphi 4 and later" ?

Hvis der er nogen der kan lave et meget simpel Delphi projekt (.dpr) som med sikkerhed virker til ovennævnte ting, ville det være en stor hjælp, da jeg i så fald kan få bragt fejlsøgningen ned til at det er min installation af MySQL eller manglende dll filer, eller noget tilsvarende der er problemet.

Igen, på forhånd tak...
Avatar billede kroning Nybegynder
25. december 2006 - 03:20 #3
Ja Delphi 4 and later men ikke MySQL 3 and later.

Prøv evt. at se tråden:
http://www.eksperten.dk/spm/751871
Avatar billede coladrenge Nybegynder
25. december 2006 - 06:42 #4
Hej

Istedet for at bruge BDE - som ofte giver problemer. Kunne du prøve at kigge på ZeosLib som indeholder komponenter specielt til MySQL. Men hvis du vil lave noget fornuftigt til Windows, så drop MySQL og kig istedet på MsSQL 2005 Express.
Avatar billede kroning Nybegynder
25. december 2006 - 11:40 #5
Jeg har brugt MySQL i flere år og den virker meget fornuftig, men nu har jeg self. aldrig prøvet MsSQL 2005 Express.
Avatar billede x-ile Nybegynder
25. december 2006 - 12:04 #6
Jeg er ikke interesseret i at binde mig mere til Microsoft end jeg i forvejen er, så vil gerne benytte mig gratis alternativer, hvilket ekskludere MsSQL.

Jeg har læst tråden, og det hjalp lidt, har hentet den dll fil som der linkes til.
Spørgsmålet er bare hvor den skal ligges. I instruktionerne, skrives der "somewhere on your path" - Er ikke helt med på hvor præcist det er.

Kroning, jeg kan se fra den tråd du linker til at du har en .pas fil som du har sat op til at kunne forbinde til en MySQL5 database. Kunne jeg få lov at kigge på den? - Og forhåbentligt lade mig inspirere lidt.

Jeg er efterhånden stødt på ZeosLib en del gange, og vil gerne forsøge mig med dem, problemet er bare at jeg ingen ide har om hvilke ting inde fra sourceforge jeg skal hente for at opnå det jeg gerne vil.
Hvis nogen kunne specificere helt præcist hvilke ting det var, og også gerne hvis der var nogle småting man skal være opmærksom på når man installere det så ville det være lækkert.

Jeg vil fortsætte med at prøve at få forbindelse til min database, men er stadigt meget åben for forslag og eventuelle løsninger.

Fortsat god 1.juledag...
Avatar billede kroning Nybegynder
25. december 2006 - 12:11 #7
Det kan du godt få men bemærk at du ikke uden videre kan bruge den med:
BDE, som jo også er en død fisk i følge mange så det gør ikke så meget.
DB-aware komponenter, dvs. DBGrid, DBEdit osv. det er fint med mig da jeg for flere år siden droppede alle DB-aware komponenter da jeg syntes de er noget skidt.
Har du en mail jeg kan sende til?
Avatar billede x-ile Nybegynder
25. december 2006 - 12:24 #8
Jeg har prøvet forgæves at installere ZeosLib, hvordan får jeg dem importeret til Delphi, skal lige siges jeg aldrig har hente komponenter ind til delphi - Har fundet frem til .dpk filerne, men kan ikke få dem ind.

#Kroning:
x-ile@digital-generation.dk
Jeg er ikke helt med på hvad du mener. Hvilke komponenter bruger du til at forbinde til dine databaser? Jeg har læst mig frem til at der ikke rigtigt er nogen fremtid i BDE.

Hvis du eventuelt gad lave en guide over PRÆCIST hvilke ting jeg skal installere og hvis der skal ændres i nogle dll filer eller lign så at jeg på den ene eller den anden måde kan få forbindelse til en MySQL5 database. Ud fra den post du linkede til tidligere går jeg ud fra du selv har fået det til at lykkes, så hvis du kunne give mig en step-by-step eller anden how-to-guide til at få det til at køre ville det være super.
I første omgang er det bare vigtigt for mig at få det op og køre, så kan jeg senere så på andre/bedre alternativer -  når jeg har fået en bedre forståelse af hvordan det hænger sammen.

På forhånd tak...
Avatar billede kroning Nybegynder
25. december 2006 - 12:41 #9
I ældre programmer bruger jeg dbexpress komponenter og Borlands dbexpress driver, dvs. jeg kun benytter en MySQL version 4.0.26 da borlands driver ikke understøtter nyere MySQL versioner. Jeg bruger ingen DB-aware komponenter.

I nye programmer som jeg er i gang med har jeg helt droppet dbexpress og selfølgelig alle Db-aware komponenter. Det eneste jeg bruger til at forbinde til MySQL 5 er LibMySql.dll der følger med MySQL 5, du finder dll´en i mappen mysql/bin. For at benytter funktionerne i denne dll har jeg så rettet mysql.pas (http://www.fichtner.net/delphi/mysql.delphi.phtml) til så den kan bruges med MySQL 5.

Da jeg ikke bruger DB-aware komponenter i nogen programmer benytter jeg SQL til at skrive og læse fra databasen.
Avatar billede x-ile Nybegynder
25. december 2006 - 12:48 #10
Det lyder godt - Jeg har nemlig heller ikke brug for nogle DB-aware komponenter, da jeg også har tænkt mig at redigere i databasen ved direkte at give den sql kommandoerne.
Den pas fil har jeg hentet (op til flere gange) - men hvor skal den ligge?
Og hvor skal LibMySql.dll filen ligges?

Tak for hjælpen, its small steps, but I am getting somewhere..
Avatar billede kroning Nybegynder
25. december 2006 - 12:54 #11
Jeg har sendt test programmet til dig, bemærk du får det som det er da jeg sidst forlod det, dvs. med diverse ShowMessage('blabla'); her og der.
Du skal kun bruge en dll og ikke andet, dll´en er LibMySql.dll og den finder du på din harddisk i mappen mysql/bin, kopier dll´en ind i den mappe hvor test programmet ligger så er du sikker på at det er den rigtige der benyttes og ikke en eller anden gammel dll der ligger og flyder i din path.
Avatar billede x-ile Nybegynder
25. december 2006 - 13:08 #12
Test suitet virkede!

Så er det bare lige at sætte sig ned og kigge på koden, og gennemskue hvad der gør hvad :D

Kunne heller ikke forstå hvorfor det skulle være så svært at connecte til en MySQL5 DB.
Men ja, det var det jo så heller ikke.

Jeg siger mange tak for hjælpen Kroning!

Jeg vil arbejde lidt videre med det, ny har jeg fået hul på bylden ihvertfald.

Fortsat god jul! ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester