Avatar billede lubker Nybegynder
19. marts 2005 - 14:16 Der er 16 kommentarer og
1 løsning

simpelt spørgsmål om bde

Hey.
Det er lige lykkedes mig at connecte til en mysql-database via bde.
Har aldrig arbejdet med bde før, men arbejdet en del med php.
Der jeg gerne vil vide nu er hvordan jeg via query kalder min database.

Via ADO kan mna gøre således:
  D1 := TADODataSet.Create(self);
  D1.Connection := ADOConnection1;

  D1.Close;
  D1.CommandText := 'SELECT * FROM ...  WHERE (dato =:pdato) ORDER BY id desc';

  D1.Parameters.ParamByName('pdato').Value := dato.Text;
  D1.Open;

Osv.
Hvordan gør man det tilsvarende med BDE? tænker specielt på linjerne:
  D1 := TADODataSet.Create(self);
  D1.Connection := ADOConnection1;
Avatar billede kroning Nybegynder
19. marts 2005 - 15:50 #1
Er der nogen speciel grund til at du vil bruge BDE?

/HK
Avatar billede lubker Nybegynder
19. marts 2005 - 15:56 #2
Tja.
Kan ikke få ADO til at virke. kommer med fejlmeddelelsen "unable to load libmysql.dll" og har efterhånden bøvlet med det i rimelig lang tid, uden nogen herinde kunne hjælpe...
Avatar billede kroning Nybegynder
19. marts 2005 - 16:00 #3
Hvad med dbExpress. Jeg har brugt dbExpress til flere programmer og har aldrig haft problemer med den.
Avatar billede lubker Nybegynder
19. marts 2005 - 16:04 #4
Min fejl. mente ikke ADO, men fik fejlen med dbExpress.
Avatar billede kroning Nybegynder
19. marts 2005 - 16:09 #5
Hvilken version af MySQL bruger du? Og hvilken Delphi?
Avatar billede lubker Nybegynder
19. marts 2005 - 16:10 #6
Delphi 7 enterprise og Mysql 4.0.23
Avatar billede kroning Nybegynder
19. marts 2005 - 16:23 #7
Jeg bruger Delphi 7 proff og MySQL 4.0.17 så hvis der virker her burde det også virke hos dig:
Jeg bruger for det meste denne function (lettere omskrevet) i mine programmer når en forbindelse skal oprettes:

uses SqlExpr;

var
    SQLConnection : TSQLConnection;
    SQLQuery: TSQLQuery;

procedure OpretForbindelse(Host,BrugerNavn,Kodeord,DataBase : String);
begin
  SQLConnection:=TSQLConnection.Create(nil);
  SQLConnection.LoginPrompt:=false;
  SQLConnection.ConnectionName:='MySQL';
  SQLConnection.DriverName:='MYSQL';
  SQLConnection.GetDriverFunc:='getSQLDriverMYSQL';
  SQLConnection.LibraryName:='dbexpmysql.dll';
  SQLConnection.VendorLib:='LIBMYSQL.dll';

  SQLConnection.Params.Values['Hostname']:=Host;
  SQLConnection.Params.Values['Database']:=DataBase;

  SQLConnection.Params.Values['User_Name']:=BrugerNavn;
  SQLConnection.Params.Values['Password']:=Kodeord;
  SQLConnection.AutoClone:=false;

  SQLQuery:=TSQLQuery.Create(nil);
  SQLQuery.SQLConnection:=SQLConnection;

  SQLConnection.Open;
end;

sørg for at dbexpmysql.dll og LIBMYSQL.dll ligger i samme bibliotek som din EXE fil så er du sikker på at det er de rigtige er bruges.
Avatar billede lubker Nybegynder
19. marts 2005 - 16:25 #8
Hvor finder jeg den rigtige version af dbexpmysql.dll og LIBMYSQL.dll
Avatar billede lubker Nybegynder
19. marts 2005 - 16:43 #9
Hm. Det virker stadig ikke.
Når jeg kører programmet kommer nøjagtig samme fejlmeddelelse som tidligere beskrevet.
Avatar billede kroning Nybegynder
19. marts 2005 - 16:47 #10
LIBMYSQL.dll følger med MySQL og den finder du i ..\mysql\bin, den jeg bruger er på 244KB og er fra 15-12-2003 01:37.
dbexpmysql.dll følger med delphi men den understøtter vist kun MySQL 3, så en ny der understøtter MySQL 4.0.xx kan hentes ved borland.com, den jeg har er fra 27-02-2004 16:02, i version info står der bla. "Borland dbExpress MySQL 4.0.xx driver", hvis du ikke kan finde den ved borland kan jeg smide den et sted hvor du kan hente den.
Avatar billede lubker Nybegynder
19. marts 2005 - 16:49 #11
Hm.
Kan ikke lige finde den på borland.com
Kan du evt sende den til daniel@lubker.dk -> nemmere end at lægge den på nettet.
Avatar billede kroning Nybegynder
19. marts 2005 - 16:57 #12
Det tog nu også mig lidt mere end 3 minutter at finde den ved borland men jeg har sendt den.
Avatar billede lubker Nybegynder
19. marts 2005 - 17:02 #13
He he..
Mange tak.
Nu komer den ikke med nogen fejlmeddelelse.

Da jeg er lidt ny med dbExpress (har aldrig benyttet det før) vil jeg gerne have en lille smule hjælp endnu.
Du skal nok få ekstra point...
Hvis jeg fx skal hente noget fra en tabel, så skal jeg nu bare skrive:

OpretForbindelse('host','user','password','db')
SQL.Text := 'SELECT * FROM tabel where ...';

label1.caption := sql.Text;

Eller hvad?
Avatar billede kroning Nybegynder
19. marts 2005 - 18:53 #14
Hvis du f.eks. har en tabel der hedder kunder og som bla. indeholder felterne Navn og Adresse så kan du gøre sådan for at finde alle dem der hedder Peter Hansen:

OpretForbindelse('host','user','password','db');
SQLQuery.SQL.Text:='SELECT * FROM kunder WHERE Navn="Peter Hansen"';
SQLQuery.Open;

Label1.Caption:=SQLQuery.FieldByName('Navn').AsString;
Label2.Caption:=SQLQuery.FieldByName('Adresse').AsString;
Avatar billede lubker Nybegynder
19. marts 2005 - 19:09 #15
Kanon.
Tusid tak for det.
Smider du et svar?!?
Avatar billede kroning Nybegynder
19. marts 2005 - 19:14 #16
Ok, jeg har nu ikke sat mig ind i det med point, hvad kan jeg bruge dem til?
Avatar billede lubker Nybegynder
19. marts 2005 - 19:47 #17
Tja. Når du spørger om noget afsætter du et antal point, som på den måde virker som en slags betaling...
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