Avatar billede zorkmontana Nybegynder
09. februar 2005 - 22:41 Der er 13 kommentarer og
1 løsning

Mysql Delphi

Det kan godt være det er mig der er dum!
men jeg har da fundet ud af at kunne connecte til min MySql nu med nød og næppe!
Jeg kan vitterlig ikke finde ud af hvilken komandoer man skal bruge!
Jeg har arbejdet lidt inden for delphi og c++ og rigtig meget inden for PHP!

det jeg vil er at Connecte til en db, som jeg har gjordt!
nu vil jeg hente en tabel (fd-cms-login) i denne tabel ligger der
1. id
2. user
3. pass
dem vil jeg gerne have udprintet i 3 Tedits!

er der nogen der kan hjælpe mig?
Avatar billede claes65 Nybegynder
10. februar 2005 - 13:51 #1
Hej, hvilken komponent har du brugt til at connecte til DB'en?
Avatar billede stone Forsker
10. februar 2005 - 13:53 #2
>udprintet< mener du ikke indsat i de 3 labels?
Avatar billede stone Forsker
10. februar 2005 - 13:53 #3
vrøvl de 3 edits ss
Avatar billede zorkmontana Nybegynder
10. februar 2005 - 18:43 #4
jeg har brugt LibMySQL.dll
nogen hjælp?
Avatar billede claes65 Nybegynder
10. februar 2005 - 18:51 #5
Så har du brugt dbExpress. Her findes en SQLConnection, som du nok har anvendt...?

Samme sted findes en SQLTable komponent. Hvis du dropper den på din form kan du se at den har en SQLConnection property. Nu vælger du din SQLConnection fra dropdown-menuen. Hvis du kan connecte korrekt, burde du nu kunne vælge din tabel fra TableName dropdown.

For at teste om du kan hente data, så drop en DataSource (Data Access flappen) og sæt DataSet til din SQLTable, og en DB Grid (Data Controls flappen) på din form. Griddens DataSource vælges fra dropdown menuen - og vupti....(best case senario!!)
Avatar billede zorkmontana Nybegynder
11. februar 2005 - 10:35 #6
du skulle vel ikke kunne lave et hurtigt eksempel?
Jeg har meget nemmere ved selv at læse koden og forstå den end at skulle forstå beskrivelser af kode! Det ville være mega nice!
Avatar billede claes65 Nybegynder
11. februar 2005 - 11:06 #7
Faktisk ikke, for jeg har afinstalleret mySQL fra min computer fornylig. Men det er faktisk blot at putte de komponenter på formen og sætte de nævnte props. Prøv at ta' det step for step... ;)
Avatar billede hrc Mester
11. februar 2005 - 13:03 #8
Har kopieret/tilrettet dette fra min dfm-fil.

  object MySQLConnection: TSQLConnection
    ConnectionName = 'Test'
    DriverName = 'MYSQL'
    GetDriverFunc = 'getSQLDriverMYSQL'
    LibraryName = 'dbexpmysql.dll'
    LoginPrompt = False
    Params.Strings = (
      'DriverName=MYSQL'
      'BlobSize=-1'
      'Database=testdb'
      'ErrorResourceFile='
      'HostName=testpc'
      'LocaleCode=0000'
      'Password=xxxx'
      'User_Name=root')
    VendorLib = 'LIBMYSQL.dll'
    Connected = True
    Left = 40
    Top = 24
  end
  object TempQuery: TSQLQuery
    MaxBlobSize = -1
    Params = <>
    SQLConnection = MySQLConnection
    Left = 144
    Top = 24
  end
Avatar billede claes65 Nybegynder
11. februar 2005 - 13:15 #9
...
Avatar billede zorkmontana Nybegynder
11. februar 2005 - 23:33 #10
hrc -> takker :D den er lidt mere enkel end den jeg bruger! meen det var hvordan jeg bruger Query! ;)
Avatar billede hrc Mester
12. februar 2005 - 19:36 #11
I ovenstående dump er der to komponenter en TSQLConnection og en TSQLQuery. De er forbundet og kobler sig til en database ved navn "testdb" på en maskine der hedder "testpc" med login "root" til MySQL maskinen via password "xxxx".

TSQLQueryen har en SQL property hvor du kan indsætte en query og en anden property der hedder Params (ikke helt sikker om det er Param, Params eller Parameters, det må du selv tjekke) hvor du kan tilrette parametrene:

I SQL har jeg skrevet et script der henter antallet af data for en ansat (har to tabeller, en ansat og en loen hvor sidstnævnte indeholder lønudskrivningerne):

select a.ID, a.Navn, l.LoenDato, l.Loen from Ansatte a
  join Loen l on (l.ID = a.ID)
  where a.ID = :AnsatID
  order by l.LoenDato

I Params vil der være en AnsatID parameter som du bør sætte til - i dette tilfælde - en ftInteger.

I programmet, i en procedure, vil det se sådan ud (læser data ind i et TListView i Report-mode og med 4 kolonner):

procedure FindAnsatData(const aAnsatID : integer);
begin
  TempQuery.ParamByName('AnsatID').AsInteger := aAnsatID;
  TempQuery.Open;
  AnsatDataListView.Items.BeginUpdate;
  try
    AnsatDataListView.Items.Clear;
    while not TempQuery.Eof do
    begin // (Se borisholt, jeg rykker ned på næste linie...)
      with AnsatDataListView.Items.Add do
      begin
        Caption := IntToStr(TempQuery.FieldByName('ID').AsInteger);
        SubItems.Add(TempQuery.FieldByName('Navn').AsString);
        SubItems.Add(DateTimeToStr(TempQuery.FieldByName('LoenDato').AsDateTime)); // Evt. bare .AsString
        SubItems.Add(FloatToStr(TempQuery.FieldByName('Loen').AsFloat));
      end;
      TempQuery.Next;
    end;
  finally
    AnsatDataListView.Items.EndUpdate;
    TempQuery.Close;
  end;
end;

Håber det er mere forklarende.
Avatar billede zorkmontana Nybegynder
19. februar 2005 - 18:50 #12
Unskyld jeg har været væk!

Men hrc det svar var perfekt! eller meget tæt på! men jeg opretter bare et sp til kan ikke få den til at update, drop, insert osv! :-S

Takker
Avatar billede thecokeguy Nybegynder
22. januar 2006 - 22:39 #13
Hej...

Kunne det evt. lade sig gøre at jeg også kan få dbexpmysql.dll til nyere versioner af MySQL ?

nicolaj.andersen@gmail.com
Avatar billede hrc Mester
25. januar 2006 - 09:37 #14
Hej Nicolai.

Er ikke helt med om det er det her du søger, men her er URL'en i alt fald: http://crlab.com/dbx/download.html.

Måske kan du finde noget her: http://www.mysql.com/products/connector/
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