Avatar billede anykey Nybegynder
07. april 2002 - 20:43 Der er 14 kommentarer og
1 løsning

TMySQL

Jeg har hentet komponentet tmysql fra:
http://www.productivity.org/projects/tmysql/

Og jeg er desperat, så den første, der kommer med et håndgribeligt kode-eksempel på hvordan man med dette komponent connecter til en db, henter nogle data ud fra et table og smider dem i en memo, får de 200 points... :)

Et lille bi-spørgsmål...: Hvorfor hedder alle ting i delphi noget med T ? tmysql Tform TObject.. T-alting.... hehe..
Avatar billede martinlind Nybegynder
07. april 2002 - 20:46 #1
Det hedder alle Typer ( classer )
Avatar billede anykey Nybegynder
07. april 2002 - 20:48 #2
okai.. rart at vide :)

Så er det da i det mindste opklaret...
Avatar billede morten_s Nybegynder
07. april 2002 - 21:17 #3
Jeg bruger med stor succes komponeterne fra microolap, herunder har du en beskrivelse af hvordan det gøres med disse komponenter


http://www.microolap.com

For at conecte til en database gør du følgende

1. Start med en frisk form/application

2. drop en komponent af typen MySqlDatabase (i det efterfølgende benævnt MySqlDatabase1) på din form og angiv følgende properties
3. databasename, her skriver du det navn som du har oprettet din database under
4. host, her angiver du IP/nr på databasens placering, ligger den lokalt skriver du localhost
5. Port her angiver du databsens portnr, default port nr er 3306 
6. Hvis du anvender UserPasword og username angiver du disse.
7. Sæt Connected til True, og du er nu CONNECTED til din DB
8. put nu en DataSource på din form (i det efterfølgende benævnt DataSource1)
9. og herefter et DBGrid, så vi har mulighed for at se data
10. i properties for DBGridet sætter du DataSorce til DataSource1


11. du skal nu gøre et valg, vil du kører med Tablekomponenter eller med Querrys ? hvis du vil kører med Table komponenter går du til trin 12. hvis du vil kører med Querys fortsætter du ved punkt 18.

Med TableKomponent:

12. drop et MySqlTable komponent på din form (i det efterfølgende benævnt mySqltable1) og sæt følgende properties
13. sæt database til MySqlDataBase1
14. sæt Tablename til et tabelnavn i din database
15. sæt active til true
16. i properties for din datasource1 vælger du dataset til MySqlTable1
17. du skal nu kunne se dine data i DBGridet.

Med Querys
18. drop en MySqlQuery på din form (i det efterfølgende benævnt MySqlQuery1) og sæt følgende properties:
19. Database sætter du til mysqlDatabase1
20. SQL, her sætter du dit statement op f.eks SELECT * FROM MyTable
    (i stedet for MyTable skriver du dit eget tabelnavn)
21. Sæt active til true
22. i properties for din datasource1 vælger du dataset til MySqlQuery1
23. du skal nu kunne se dine data i DBGridet.

Det var det grundlæggende god fornøjelse
/Morten
Avatar billede anykey Nybegynder
07. april 2002 - 21:23 #4
Desværre morten.. jeg kan ikke give dig point'sne.. :( de komponenter koster også penge.. jeg har brug for et kode-eksempel til tmysql fra:
http://www.productivity.org/projects/tmysql/
Avatar billede siz23 Nybegynder
07. april 2002 - 21:34 #5
kan du ikke bare kikke på den test aplication, der følger med tmysql-21b??

det ville værer lidt spild af tid at paste koden her, når den følger med den program pakke du henter.
Avatar billede anykey Nybegynder
07. april 2002 - 21:36 #6
Tjaa.. jeg har kun leget med mysql i php, så det virker lidt som en ond drøm i delphi.. jeg beder bare om et nemt overskueligt eksempel på at få resultatet at en query tilbage i en memo...
Avatar billede stoney Nybegynder
07. april 2002 - 21:39 #7
Prøv at kigge på dbexpress fanebladet

Stoney
Avatar billede anykey Nybegynder
07. april 2002 - 21:44 #8
Stoney> Jeg ved godt at man kan bruge dbexpress... men det var ikke det spørgsmålet gik ud på... :/
Avatar billede stoney Nybegynder
07. april 2002 - 21:45 #9
Så prøv som siz23 siger.

Der er samples med i din download.

Stoney
Avatar billede anykey Nybegynder
07. april 2002 - 21:48 #10
I know.. :) men stadig.. I må gøre noget for de points.. :) ikke ?
Jeg er lidt n00b.. så jeg vil gerne ha' skåret det ud i pap ...
Avatar billede siz23 Nybegynder
07. april 2002 - 22:56 #11
k, her er så en lille stump kode, det skulle værre nok til at få dig igang ;)

under Capabilities på componented skal [_CLIENT_LONG_PASSWORD] værer den eneste der skal værer =true, det vil sige at du skal fjerne den der hedder _CLIENT_LONG_FLAG, for jeg kunne ikke få den til at virke med den på.

så tag et kik på mit exemble og du skulle hurtigt værer igang.


var
  I:Integer;
begin
    mySQLClient1.Hostname:='ip du vil connecte til';
    mySQLClient1.Username:='brugernavn';
    mySQLClient1.Password:='kodeord';
    mySQLClient1.Database:='databasenavn';
    mySQLClient1.Connect;

    //insert data
    mySQLClient1.Query.Prepare('INSERT INTO table (test) Values(''url2'')','InsertTest');
    mySQLClient1.Execute;

    //læs data
    mySQLClient1.Query.Prepare('SELECT * FROM table','FirstSearch');
    mySQLClient1.Execute;
    for I:=0 to mySQLClient1.Query.DataCount-1 do
    begin
          Memo1.Lines.Add(mySQLClient1.Query.Data(i,0);
          //data(x,x) angir hvilen rækken,collonne du vil hive data fra
    End;
end;
Avatar billede siz23 Nybegynder
07. april 2002 - 22:58 #12
manglede lige en parentes. ;)
Memo1.Lines.Add(mySQLClient1.Query.Data(i,0));
håber det var det du søgte.
Avatar billede anykey Nybegynder
08. april 2002 - 07:24 #13
siz23 > det ser godt nok ud.. jeg tester det lige i aften, og hvis det virker får du dine points :)
Skolen kalder.. :(
Avatar billede morten_s Nybegynder
08. april 2002 - 08:19 #14
Ellers kig videre på mit eksempel, det er med 99% sikkerhed samme fremgangsmåde
Avatar billede debushatta Nybegynder
29. april 2003 - 20:40 #15
//læs data
    mySQLClient1.Query.Prepare('SELECT * FROM table','FirstSearch');
    mySQLClient1.Execute; 
    for I:=0 to mySQLClient1.Query.DataCount-1 do//mySQLClient1.Query.DataCount
    begin                                        //er 0. Hvorfor det? der
                                                //ligger poster i databasen
                                                //Under eventen OnQuery
                                                //Har den en værdi!!!
                                                // og man kan brugen den!!! 
          Memo1.Lines.Add(mySQLClient1.Query.Data(i,0);
          //data(x,x) angir hvilen rækken,collonne du vil hive data fra
    End;
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