Avatar billede crasher Nybegynder
02. februar 2004 - 10:27 Der er 19 kommentarer og
1 løsning

Tilsluttelse til MySQL database via Delphi med MyDAC

Hejsa allesammen

har lige hentet programmet MyDAC til delphi så jeg kan tilslutte en mysql database...

Jeg er MEGET nybegynder med dette

jeg har indtil videre fundet ud af at tilslutte min database og
Select * from database

Det jeg mangler nu er at få udskrevet et felt fra databasen så jeg kan se det i Delphi

en der kan fortælle mig hvordan dette gøres ?

det ville være rigtig rigtig fedt ;)

// Crasher
Avatar billede morten_s Nybegynder
02. februar 2004 - 10:46 #1
Det kan du gøre sådan her
procedure TForm1.Button1Click(Sender: TObject);
var
  aQuery: TmySQLQuery;
begin
  try
    aQuery:= TmySQLQuery.Create(self);
    with aQuery do
    begin
      Database:= mySQLDatabase1;
      SQL.Text:= 'select * from database'; //Database = navn på din tabel
      Open;
      while not Eof do
      begin
        ShowMessage(FieldByName('Name').AsString); //Name = navn på et felt i din database
        Next;
      end;
    end;
  finally
    aQuery.Free;
  end;
end;
Avatar billede crasher Nybegynder
02. februar 2004 - 10:51 #2
når jeg kører koden siger den:


[Error] Unit1.pas(30): Undeclared identifier: 'TmySQLQuery'
[Error] Unit1.pas(33): Missing operator or semicolon
[Error] Unit1.pas(36): Undeclared identifier: 'Database'

somom det er noget med denne linje?

  aQuery: TmySQLQuery;

men ved det desværre ikke.. er jo ret nybegynder :(

// Crasher
Avatar billede crasher Nybegynder
02. februar 2004 - 10:52 #3
jeg bruger delphi 6 hvis det kan bruges til nogen information ??

// Crasher
Avatar billede morten_s Nybegynder
02. februar 2004 - 10:54 #4
prøv at ligge et komponent af typen TmySQLQuery på din form
eller tilføj DB, mySQLDbTables til din uses liste
Avatar billede crasher Nybegynder
02. februar 2004 - 10:57 #5
sorry men jeg forstår ikke lige hvordan man gør det ? kan du forklare nærmere ?.. ville være rigtig dejligt.. det er nemlig et meget vigtigt skole projekt jeg er igang med :(

på forhånd mange tak

// Crasher
Avatar billede morten_s Nybegynder
02. februar 2004 - 11:01 #6
Da du installerede komponenterne fra MySqlDac fik du en fane mere foroven, klik ind på den og
find en som hedder mySQLQuery den ligger du så på din form, så skulle resten virke
Avatar billede crasher Nybegynder
02. februar 2004 - 11:05 #7
min form ser sådan ud ligenu:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, MemDS, DBAccess, MyAccess, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    MyConnection1: TMyConnection;
    MyQuery1: TMyQuery;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  aQuery: TmySQLQuery;
begin
  try
    aQuery:= TmySQLQuery.Create(self);
    with aQuery do
    begin
      Database:= kaspersand;
      SQL.Text:= 'select * from reservednames'; //Database = navn på din tabel
      Open;
      while not Eof do
      begin
        ShowMessage(FieldByName('navn').AsString); //Name = navn på et felt i din database
        Next;
      end;
    end;
  finally
    aQuery.Free;
  end;
end;
end;

end.

------------------------------------------------------------------------
og så har jeg tilføjet

noget der hedder MyQuery på formen.. men den kan ikke ses i koden tror jeg ikke

man skal vel også fortælle computeren hvad kodeord osv er på serveren ?..

forstår bare ikke den skriver det

[Error] Unit1.pas(30): Undeclared identifier: 'TmySQLQuery'

selvom jeg har tilføjet den MyQuery dims i formen?

// Crasher
Avatar billede whynot Nybegynder
02. februar 2004 - 11:05 #8
morten_s 's kode virker fino hos mig.. som han siger skal du huske at "trække" en mySQLquery på din form.. denne kan du finde under fanebladet for MySQL DAC.. den er højst sandsynligt det sidste faneblad i delphi for valg af "kombonentgrupper".

du skal iøvrig også have en connection og en datasource hvis du skal have vist data'en i en dbeditbox eller f.eks. et dbgrid.
Avatar billede morten_s Nybegynder
02. februar 2004 - 11:09 #9
Jeg tror det er fordi i har en nyere version af MySqlDac
prøv at rette
procedure TForm1.Button1Click(Sender: TObject);
var
  aQuery: TmyQuery;
begin
  try
    aQuery:= TmyQuery.Create(self);
Avatar billede crasher Nybegynder
02. februar 2004 - 11:11 #10
nu skete der noget

nu siger den bare

[Error] Unit1.pas(39): Undeclared identifier: 'Database'

;)

// Crasher
Avatar billede crasher Nybegynder
02. februar 2004 - 11:15 #11
Det er ikke noget med man skal erklare den som en variabel ?.. i må bære over med mig hvis jeg snakker i tåger ;)

// Crasher
Avatar billede morten_s Nybegynder
02. februar 2004 - 11:19 #12
Det skyldes nok at der er kommet nye variabelnavne til.

Klik på det myQuery som du har sat på formen og derefter i din object inspector for at finde variabelnavnet på connection til databasen
Avatar billede crasher Nybegynder
02. februar 2004 - 11:27 #13
Når jeg kigger i min object inspector står der under punktet connection: Database

så den er altså i object inspector når MyQuery dimsen er markeret :(

her er et lille screenshot af det:

http://frip.dk/dnh/Unavngivet.JPG

// crasher
Avatar billede crasher Nybegynder
02. februar 2004 - 11:32 #14
har lige prøvet at tilføje sådan en conenction i formen og så fjerne linien:

Database:= kaspersand;

så åbner programmet også helt fint for første gang :).. men det lukker så snart jeg trykker på min knap og giver mig så følgende fejl

http://frip.dk/dnh/Unavngivet2.JPG

// Crasher
Avatar billede morten_s Nybegynder
02. februar 2004 - 12:24 #15
Din kode skal så være
with aQuery do
    begin
      Connection:= MyConnection1;
Avatar billede morten_s Nybegynder
02. februar 2004 - 13:01 #16
Dur det...?
Avatar billede crasher Nybegynder
06. februar 2004 - 12:16 #17
er ikke lige med på hvad du mener ?=?

// Crasher
Avatar billede crasher Nybegynder
06. februar 2004 - 12:18 #18
kan da ikke passe jeg bare skal skrive

Connection:= MyConnection1;

istedet for

Database:= database;

??..

er ikke helt med.. plz hjælp
Avatar billede whynot Nybegynder
06. februar 2004 - 13:05 #19
okey.. here goes:

//Initialisering af Mainserver til tjek for brugerlogin og videre servervalg.
    myconnection1.Server := 'xxx.xxx.xxx.xxx'; //ip nr til serveren.
    myconnection1.Database := 'blabla'; //databasens navn
    myconnection1.Username := 'root'; //loginnavn til databasen
    myconnection1.Password := 'xxxxxx'; //loginpass til databasen
    myconnection1.Connected := true; //connecter til databasen.

    if myconnection1.Connected = true then
    begin
  //brugeren har adgang til serveren
      with Myquery1 do
      begin
        Myquery1.Active := false; //sørger for at querien kan tage imod sqltekst.
        Myquery1.SQL.Text := 'SELECT * FROM bruger'; //sql statement.
        Myquery1.Active := true; //eksekverer sql statement.
    //alternativt kan Myquery2.Execute; bruges istedet for.
      end;
    end;
Avatar billede crasher Nybegynder
12. februar 2004 - 08:35 #20
så nu virker det morten_s
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