Bruge en TSQLConnection til at forbinde til mySQL-database

Tags:    delphi

Jeg tænkte på om der var nogen der kunne forklare mig hvordan jeg bruger TSQLConnection, til at forbinde til en local mySQL database og fx indsætte og hente data fra den?

Og hvordan måske hvordan man forbinder til en mySQL database på en server et andet sted i verden...

...så kunne man, når man lavede en hjemmeside til en anden, udvikle et program så han/hun meget enkelt kan tilføje nyheder osv.

kunne sq være nice :D

På forhånd tak og alt det der....

Martin Dybdal (Dybber)



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hvis du vil forbinde til MySQL-database er det nok en god idé at kigge på denne side:

http://www.fichtner.net/delphi/mysql/

Hans mysql.pas er lige til og giver mulighed, for nogle kommandoer der minder meget om dem man kender fra PHP.

MvH

Stefan Svensson
http://fusket.frac.dk




Fold kodeboks ind/udKode 


Nu spørger jeg bare dumt, hver gang jeg skal hente en enkelt ting ud fra min database, skal jeg så skriv al den kode, bare med en anden forspørgsel??

Hilsen

Martin Dybdal (Dybber)

Hej Martin,

Jeg ville nok pakke noget af alt denne funktionalitet ind i en klasse som kan skabe forbindelsen til databasen og give dig nogle funktioner til at sende SQL'en.

Jeg har lave en klasse som sørgerfor at:
- Connect,
- Disconnect,
- Select,
- Delete,
- Update,
- Insert.

Her er koden (unit'en skal gemmes som mysql_database.pas):
Fold kodeboks ind/udKode 


Jeg har ikke testet klassen, men du burde nok kunne rette evt. små fejl.
Når du nu skal bruge klassen skal du gøre det på følgende måder:
Fold kodeboks ind/udKode 



Jeg håber det er noget du kan bruge...
Du kan evt. ændre i klassen så du får navnene på kolonnerne med tilbage ved en Select.

/Michael.

[Redigeret d. 06/10-03 09:07:59 af Michael Skovslund]



Hvis du vil forbinde til MySQL-database er det nok en god idé at kigge på denne side:

http://www.fichtner.net/delphi/mysql/

Hans mysql.pas er lige til og giver mulighed, for nogle kommandoer der minder meget om dem man kender fra PHP.

MvH

Stefan Svensson
http://fusket.frac.dk


Det ligner noget jeg kender fra php, men jeg er ikke så stærk i delphi endnu til at forstår, hvordan man bruger det :(....
Hilsen

Martin Dybdal (Dybber)



Hvis du vil forbinde til MySQL-database er det nok en god idé at kigge på denne side:

http://www.fichtner.net/delphi/mysql/

Hans mysql.pas er lige til og giver mulighed, for nogle kommandoer der minder meget om dem man kender fra PHP.

MvH

Stefan Svensson
http://fusket.frac.dk

Det ligner noget jeg kender fra php, men jeg er ikke så stærk i delphi endnu til at forstår, hvordan man bruger det :(....
Hilsen

Martin Dybdal (Dybber)

Hej Martin,

Du skal bruge de samme kald i Delphi som du bruger i PHP.
Den eneste forskel er at dit resultatsæt ikke kan indekseres via kolonne navne da disse bliver returneret i et array af PChar. Hvilket vil sige du skal bruge 0,1,2 osv, for at indeksere i mellem kolonnerne i dit resultatsæt.

Her er en funktion som connect'er til databasen og henter et resultat:
Fold kodeboks ind/udKode 


Husk du skal bruge MySql DLL'et (libmysql.dll) for at få programmet til at kører. Dette DLL kan vist nok hentes på MySql's hjemmeside.

Håber det hjælper.
/Michael.



Med hensyn til libmysql.dll, den følger med i en MySQl installation og kan også hentes seperat mange steder.

Men for at undgå fejl skal man sørge for at versionen af mysql.pas, libmysql.dll og mySQL-serveren er den samme.


MvH

Stefan Svensson
http://fusket.frac.dk



Hvis du vil forbinde til MySQL-database er det nok en god idé at kigge på denne side:

http://www.fichtner.net/delphi/mysql/

Hans mysql.pas er lige til og giver mulighed, for nogle kommandoer der minder meget om dem man kender fra PHP.

MvH

Stefan Svensson
http://fusket.frac.dk

Det ligner noget jeg kender fra php, men jeg er ikke så stærk i delphi endnu til at forstår, hvordan man bruger det :(....
Hilsen

Martin Dybdal (Dybber)
Hej Martin,

Du skal bruge de samme kald i Delphi som du bruger i PHP.
Den eneste forskel er at dit resultatsæt ikke kan indekseres via kolonne navne da disse bliver returneret i et array af PChar. Hvilket vil sige du skal bruge 0,1,2 osv, for at indeksere i mellem kolonnerne i dit resultatsæt.

Her er en funktion som connect'er til databasen og henter et resultat:
Fold kodeboks ind/udKode 


Husk du skal bruge MySql DLL'et (libmysql.dll) for at få programmet til at kører. Dette DLL kan vist nok hentes på MySql's hjemmeside.

Håber det hjælper.
/Michael.


Weeee det virker..efter en halv times undren fandt jeg ud af at libmysql.dll filen skulle lige i samme mappe som filen og ikke i delphi mappen mysql mappen eller windows eller windows/system32 mappen :D

Hilsen

Martin Dybdal (Dybber)

[Redigeret d. 04/10-03 23:27:16 af Martin Dybdal]



Hvis du vil forbinde til MySQL-database er det nok en god idé at kigge på denne side:

http://www.fichtner.net/delphi/mysql/

Hans mysql.pas er lige til og giver mulighed, for nogle kommandoer der minder meget om dem man kender fra PHP.

MvH

Stefan Svensson
http://fusket.frac.dk

Det ligner noget jeg kender fra php, men jeg er ikke så stærk i delphi endnu til at forstår, hvordan man bruger det :(....
Hilsen

Martin Dybdal (Dybber)
Hej Martin,

Du skal bruge de samme kald i Delphi som du bruger i PHP.
Den eneste forskel er at dit resultatsæt ikke kan indekseres via kolonne navne da disse bliver returneret i et array af PChar. Hvilket vil sige du skal bruge 0,1,2 osv, for at indeksere i mellem kolonnerne i dit resultatsæt.

Her er en funktion som connect'er til databasen og henter et resultat:
Fold kodeboks ind/udKode 


Husk du skal bruge MySql DLL'et (libmysql.dll) for at få programmet til at kører. Dette DLL kan vist nok hentes på MySql's hjemmeside.

Håber det hjælper.
/Michael.

Weeee det virker..efter en halv times undren fandt jeg ud af at libmysql.dll filen skulle lige i samme mappe som filen og ikke i delphi mappen mysql mappen eller windows eller windows/system32 mappen :D

Hilsen

Martin Dybdal (Dybber)

[Redigeret d. 04/10-03 23:27:16 af Martin Dybdal]

Hej,

Ja enten skal den ligge i samme bibliotek eller du skal ligge den under windows system/system32
Har lige checket dokumentationen og der ledes i følgende biblioteker:
1. The directory from which the application loaded.
2. The current directory.
3. Windows 95: The Windows system directory. Use the GetSystemDirectory function to get the path of this directory.

Windows NT: The 32-bit Windows system directory. Use the GetSystemDirectory function to get the path of this directory. The name of this directory is SYSTEM32.

4. Windows NT: The 16-bit Windows system directory. There is no Win32 function that obtains the path of this directory, but it is searched. The name of this directory is SYSTEM.
5. The Windows directory. Use the GetWindowsDirectory function to get the path of this directory.
6. The directories that are listed in the PATH environment variable.


/Michael.

[Redigeret d. 05/10-03 09:53:50 af Michael Skovslund]




Fold kodeboks ind/udKode 


Nu spørger jeg bare dumt, hver gang jeg skal hente en enkelt ting ud fra min database, skal jeg så skriv al den kode, bare med en anden forspørgsel??

Hilsen

Martin Dybdal (Dybber)



t