Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Mysql database bağlantısı
#1
Merhaba,

Bu zamana kadar db olarak sqlite kullandım. Fakat şimdi mecburen mysql kullanmak durumundayım. Nedeni ise birden fazla kullanıcı aynı anda aynı db bağlanacak. Localhosta bağlantıda sorun yok. Serverdeki ortak olan mysql db bağlantı kurmak için nasıl bir yol izlemeliyim?

Birde (EmbeddedArgs.Text) yerine (EmbeddedArgs.Add) kullanmak istiyorum kodlamayı daha iyi anlamak adına.

procedure TForm1.Button1Click(Sender: TObject);
begin
  With FDPhysMySQLDriverLink do
  begin
    Release;
    DriverID := 'MySQL';
    VendorLib := ExtractFilePath(Application.Exename) + 'libmysqld.dll';
    EmbeddedArgs.Add('--basedir=<C:\MySQL>');
    EmbeddedArgs.Add('--datadir=<C:\Server\MySQL>');
    EmbeddedArgs.Add('--skip-innodb');

    EmbeddedArgs.Text := '' + '--basedir=' +
      ExtractFilePath(Application.Exename) + ';' + '--datadir=' +
      ExtractFilePath(Application.Exename) + '\LIST;' + '--language=' +
      ExtractFilePath(Application.Exename) + ';' + '--skip-innodb;' +
      '--skip-networking;';
  end;
  begin
    FDConnection.Connected := False;
    FDConnection.LoginPrompt := False;
    FDConnection.Params.Clear;
    FDConnection.Params.Values['DriverID'] := 'MySQL';
    FDConnection.Params.Values['CharacterSet'] := 'utf8';
    FDConnection.Params.Values['Database'] := 'PGDB';
    FDConnection.Connected := True;

    UserFDQuery.Active := False;
    UserFDQuery.Connection := FDConnection;
    UserFDQuery.Close;
    UserFDQuery.SQL.Clear;
    UserFDQuery.SQL.Add('Select * From USERS');
    UserFDQuery.Prepared := True;
    UserFDQuery.Open;
    if Not UserFDQuery.IsEmpty then
    begin
      ComboBoxUser.Items.Clear;
      while Not UserFDQuery.Eof do
      begin
        ComboUser.Items.Add(UserFDQuery.FieldByName('USNAME').AsString);
        Next;
      end;
Cevapla
#2
Serverınızda mysql 3306 portu açık olmalı FDConnection.server:='ip adresiniz' //fdconnectionda böylemi bilmiyorum unidac'ın uniconnection nesnesinde bu şekilde


örnek kendi kullandığım yöntem


procedure TfrmMain.FormCreate(Sender: TObject);
var
inidosya : TMemIniFile;
begin

{$region 'MYSQL 1 INI FILE UPDATE'}
if not FileExists(ExtractFilePath(ParamStr(0))+ 'MYSQL-1.ini') then
begin
inidosya := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MYSQL-1.ini', TEncoding.UTF8);

mysqlOneServer:='127.0.0.1';
mysqlOneDatabase:='DATABASE';
mysqlOneUserName:='USERNAME';
mysqlOnePassword:='PASSWORD';
mysqlOnePort:=3306;
mysqlOneCharSet:='utf8';
mysqlOneUseUnicode:=True;


 try
  Inidosya.WriteString ('setings','SERVER',      mysqlOneServer);
  Inidosya.WriteString ('setings','DATABASE',    mysqlOneDatabase);
  Inidosya.WriteString ('setings','USERNAME',    mysqlOneUserName);
  Inidosya.WriteString ('setings','PASSWORD',    mysqlOnePassword);
  Inidosya.WriteInteger('setings','PORT',        mysqlOnePort);
  Inidosya.WriteString ('setings','CHARSET',     mysqlOneCharSet);
  inidosya.WriteBool   ('setings','USEUNICODE',  mysqlOneUseUnicode);
  inidosya.UpdateFile;

 finally
  inidosya.Free;

 end;



end
else
begin



 inidosya := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MYSQL-1.ini', TEncoding.UTF8);
   try


    mysqlOneServer:=     Inidosya.ReadString('setings', 'SERVER', '127.0.0.1');
    mysqlOneDatabase:=   Inidosya.ReadString('setings', 'DATABASE', '');
    mysqlOneUserName:=   Inidosya.ReadString('setings','USERNAME', 'SYSDBA');
    mysqlOnePassword:=   Inidosya.ReadString('setings','PASSWORD', 'masterkey');
    mysqlOnePort:=       Inidosya.ReadInteger('setings','PORT',3306);
    mysqlOneCharSet:=    Inidosya.ReadString('setings','CHARSET', 'utf8');
    mysqlOneUseUnicode:= inidosya.ReadBool('setings','USEUNICODE',True);


   finally
    FreeAndNil(inidosya);
   end;


end;



{$endregion}



procedure TfrmMain.MysqlOneConnect;
begin
conMysql.Disconnect;
conMysql.Server:=mysqlOneServer;
conMysql.Database:=mysqlOneDatabase;
conMysql.Username:=mysqlOneUserName;
conMysql.Password:=mysqlOnePassword;
conMysql.Port:=mysqlOnePort;
conMysql.SpecificOptions.Values['Charset']:=mysqlOneCharSet;
if mysqlOneUseUnicode then
conMysql.SpecificOptions.Values['UseUnicode']:='True'
else
conMysql.SpecificOptions.Values['UseUnicode']:='False';
conMysql.Connect;
end;

“Do. Or do not. There is no try.”
Cevapla
#3
(30-03-2018, Saat: 04:04)masteryoda Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlServerınızda mysql 3306 portu açık olmalı FDConnection.server:='ip adresiniz' //fdconnectionda böylemi bilmiyorum unidac'ın uniconnection nesnesinde bu şekilde


örnek kendi kullandığım yöntem


procedure TfrmMain.FormCreate(Sender: TObject);
var
inidosya : TMemIniFile;
begin

{$region 'MYSQL 1 INI FILE UPDATE'}
if not FileExists(ExtractFilePath(ParamStr(0))+ 'MYSQL-1.ini') then
begin
inidosya := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MYSQL-1.ini', TEncoding.UTF8);

mysqlOneServer:='127.0.0.1';
mysqlOneDatabase:='DATABASE';
mysqlOneUserName:='USERNAME';
mysqlOnePassword:='PASSWORD';
mysqlOnePort:=3306;
mysqlOneCharSet:='utf8';
mysqlOneUseUnicode:=True;


 try
  Inidosya.WriteString ('setings','SERVER',      mysqlOneServer);
  Inidosya.WriteString ('setings','DATABASE',    mysqlOneDatabase);
  Inidosya.WriteString ('setings','USERNAME',    mysqlOneUserName);
  Inidosya.WriteString ('setings','PASSWORD',    mysqlOnePassword);
  Inidosya.WriteInteger('setings','PORT',        mysqlOnePort);
  Inidosya.WriteString ('setings','CHARSET',     mysqlOneCharSet);
  inidosya.WriteBool   ('setings','USEUNICODE',  mysqlOneUseUnicode);
  inidosya.UpdateFile;

 finally
  inidosya.Free;

 end;



end
else
begin



 inidosya := TMemIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MYSQL-1.ini', TEncoding.UTF8);
   try


    mysqlOneServer:=     Inidosya.ReadString('setings', 'SERVER', '127.0.0.1');
    mysqlOneDatabase:=   Inidosya.ReadString('setings', 'DATABASE', '');
    mysqlOneUserName:=   Inidosya.ReadString('setings','USERNAME', 'SYSDBA');
    mysqlOnePassword:=   Inidosya.ReadString('setings','PASSWORD', 'masterkey');
    mysqlOnePort:=       Inidosya.ReadInteger('setings','PORT',3306);
    mysqlOneCharSet:=    Inidosya.ReadString('setings','CHARSET', 'utf8');
    mysqlOneUseUnicode:= inidosya.ReadBool('setings','USEUNICODE',True);


   finally
    FreeAndNil(inidosya);
   end;


end;



{$endregion}



procedure TfrmMain.MysqlOneConnect;
begin
conMysql.Disconnect;
conMysql.Server:=mysqlOneServer;
conMysql.Database:=mysqlOneDatabase;
conMysql.Username:=mysqlOneUserName;
conMysql.Password:=mysqlOnePassword;
conMysql.Port:=mysqlOnePort;
conMysql.SpecificOptions.Values['Charset']:=mysqlOneCharSet;
if mysqlOneUseUnicode then
conMysql.SpecificOptions.Values['UseUnicode']:='True'
else
conMysql.SpecificOptions.Values['UseUnicode']:='False';
conMysql.Connect;
end;

Soruma cevap ol masada vakit ayırdığınız için teşekkür ederim.
Cevapla
#4
with FDPhysMySQLDriverLink do begin
       DriverID  := 'MySQL';
       VendorLib := 'libmysql.dll';
     end;

     
     with FDConnection do begin
       DriverName  := 'MySQL';
       LoginPrompt := false;
       Params.DriverID := 'MySQL';
       Params.UserName := 'root';
       Params.Password := '';
       Params.Add('Server=localhost');
       Params.Add('Port=3306');
       Connected := true;                            
     end;
   except
     on E:Exception do
       Connect := E.Message;
   end;
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  n11.com Api Bağlantısı hi_selamlar 4 560 30-08-2018, Saat: 02:52
Son Yorum: hi_selamlar
  Database tasarım önerisi klavye 4 217 31-07-2018, Saat: 18:15
Son Yorum: klavye
  Mysql Büyükten Küçüğe Sıralama Sorunu hakanharbeli 4 336 25-04-2018, Saat: 08:26
Son Yorum: yhackup
  Mysql db'ye bağlantı kurma Dostk 3 414 05-04-2018, Saat: 19:55
Son Yorum: faktoral
  Database random Dostk 7 742 07-03-2018, Saat: 12:38
Son Yorum: Dostk



Konuyu Okuyanlar: 1 Ziyaretçi