Arsip: ginana koneksi ke DB pake file INI?

 
user image
more 12 years ago

putukaca

halo saya mo nanya nih, gimana cara koneksi ke database menggunakan suatu file ini misal nama file-nya konek.ini? saya pakai D7,mysql4.1 dan zeos. tujuan saya nantinya saya bisa ubah host, user atau password-nya tanpa ngubah programnya. isi dari konek.ini sbb: [konek] Host=localhost Port=3306 DataBase=dbJual User=andi Password=aku1 kasi contohnya donk? thank's yudi
user image
more 12 years ago

yayaretina

sample aja yo...
function pesan(s:string):boolean; // function pada saat koneksi gagal 
begin
  result:=application.messagebox(pchar(s),'Konfirmasi',mb_yesno)=id_yes;
end;

procedure TDM.DataModuleCreate(Sender: TObject);
var
  TFile: TextFile;
  ts:tstringlist;
begin
 try
  ts:=tstringlist.create;
  ts.LoadFromFile('config.ini');
  konektor.Server:=ts.Values['HOST'];
  konektor.Password:=ts.Values['PASSWORD'];
  konektor.Username:=ts.Values['USER'];
  konektor.Port:=ts.Values['PORT'];
  konektor.Database:=ts.Values['DATABASE'];
  konektor.Connected:=true;
  except // jika gagal koneksi atau tidak menemukan file config.ini
    begin
    assignFile(Tfile, 'config.ini');
    rewrite(TFile);
    closeFile(TFile);
    end;
  try
  Konektor.Connected:=true;
  except
    if pesan('Koneksi database gagal, silahkan konfigurasi database ?') then
    begin
      Konektor.Connected:=false;
      Fkoneksi:=TFkoneksi.Create(self);
      With Fkoneksi do
        begin
          ShowModal;
          FreeAndNil(FKoneksi);
        end;
    end else begin
      Application.Terminate;
    end;
  end;
 end;
  ts.free;
end;
pada form koneksi...
procedure TFkoneksi.cxButton1Click(Sender: TObject);
begin
  with dm do
  begin
      konektor.Server:=cxHost.Text;
      konektor.Password:=cxPass.Text;
      konektor.username:=cxUser.Text;
      konektor.Port:=cxport.Text;
      konektor.Database:=cxdbase.Text;
      Screen.Cursor:=crHourGlass;
      try
         konektor.Connected:=true;
       except
          begin
            MessageDlg('Koneksi gagal...'+#13+
            'Mohon cek kembali Username,Password,Hostname',mtError,[mbok],0);
            cxUser.SetFocus;
            Exit;
          end;
       end;
       // menyimpan konfigurasi koneksi di file ini
       ts:=tstringlist.create;
       ts.Values['HOST']:= //host
       ts.Values['PASSWORD']:= //password
       ts.Values['PORT']:= //port
       ts.Values['USER']:= //username
       ts.Values['DATABASE']:= //database
       ts.SaveToFile('config.ini');
        Messagedlg('Koneksi pada database sukses !!!',
        mtInformation,[mbok],0) ;
      end;
end;
ya gitu dech..
user image
more 12 years ago

julius

//Simpan File ini Procedure btsimpanClick(Sender:TObject); Var FileIni:TiniFile; Begin Try FileIni := TIniFile.Create(ExtractFilePath(Application.ExeName) +'konek.ini'); //letak file ini jadi satu sama exe FileIni.WriteString('konek', 'Host', 'localhost'); FileIni.WriteString('konek', 'Port', '3306'); FileIni.WriteString('konek', 'Database','dbjual); FileIni.WriteString('konek', 'User', 'andi'); FileIni.WriteString('konek', 'Password', 'aku1'); Except on E: Exception do begin MessageDlg('Gagal simpan file ini'+#13#10+ E.Message,mtError,[mbOK],0); end; End; Fileini.free; End; //Baca FileIni Procedure KoneksiKedatabase; Var FileIni : TIniFile; UserName, Passwords,hosnya,data,dataport : WideString; Begin If Not FileExists(ExtractFilePath(Application.ExeName)+'\konek.ini') Then Begin MessageDlg('File ini konek.ini tidak ditemukan',mtError,[mbok],0); exit; End; Try FileIni := TIniFile.Create(Extractfilepath(Application.exename) + 'konek.ini'); UserName:=FileIni.ReadString('konek', 'user', UserName); Passwords := FileIni.ReadString('konek', 'Password', Passwords); hosnya := FileIni.ReadString('konek', 'Host', hosnya); data := FileIni.ReadString('konek', 'Database',data); dataport:=FileIni.ReadString('konek', 'Port',dataport); ZConnection.HostName:=hosnya; ZConnection.Database:=data; ZConnection.User:=UserName; ZConnection.Password:=Passwords; ZConnection.Port:=strToInt(dataport); Screen.Cursor := crHourGlass; Application.ProcessMessages; ZConnection.Connected:=true; Screen.Cursor := crDefault; Except on E: Exception do begin MessageDlg('Koneksi gagal, Silakan Setting koneksi database '+#13#10+ E.Message,mtError,[mbOK],0); end; End; End;
user image
more 12 years ago

EkoIndri

Selain kita bisa menyimpan settingan data didalam file ini, kita juga bisa menyimpan didalam registry. kelebihan didalam file ini apabila sistem operasi dilakukan install ulang, maka program yang tidak integrated dengan OS masih tetap bisa jalan. Sedangkan kelebihan dari registry, didalam registry kita bisa menyimpan data settingan secara kompleks dengan type data yang bermacam-macam. tapi hanya digunakan untuk melakukan proses penyimpanan settingan konfigurasi database dua2 sama posisinya. berikut ini saya kasih contoh dengan menggunakan registry:

unit Connection;
interface
uses
  dialogs, ComObj, SysUtils, Classes, DB, ADODB, RzCommon;
type
  TDMConnection = class(TDataModule)
    Connection: TADOConnection;
    Regedit: TRzRegIniFile;
    TempConnection: TADOConnection;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  DMConnection: TDMConnection;
implementation
{$R *.dfm}
procedure TDMConnection.DataModuleCreate(Sender: TObject);
var
  TeksKoneksi : String;
  Password    : String;
  User        : String;
  Server      : String;
  Database    : String;
  TempStatus  : String;
label
  KoneksiUlang;
begin
with Regedit do
  begin
  Password    := ReadString('Config','Password','');
  User        := ReadString('Config','User','');
  Server      := ReadString('Config','Server','');
  Database    := ReadString('Config','Database','');
  end;
TeksKoneksi :=
'Provider=SQLOLEDB.1;' +
'Password=%s;' +
'Persist Security Info=True;' +
'User ID=%s;' +
'Initial Catalog=%s;' +
'Data Source=%s';
with Connection do
  begin
  ConnectionString := Format(TeksKoneksi,[Password,
                                         User,
                                         Database,
                                         Server]);
  KoneksiUlang:
  try
    TempStatus := 'Sukses';
    Connected := True;
  except
    on EOleException do
      begin
      TempStatus := 'Gagal';
      end;
  end;
  if TempStatus = 'Gagal' then
    goto KoneksiUlang;
  end;
end;
end.
pada contoh kode program diatas sudah saya lengkapi juga apabila koneksi gagal. jika koneksi gagal maka aplikasi yang kita buat akan hang, namun dengan cara ini program dalam tiap periode selama koneksi gagal akan selalu mengecek dan program tidak error disini saya tambahkan uses ComObj gunanya untuk menangkap error yang ditimbulkan oleh ADO. kemudian untuk object yang saya gunakan untuk akses registry saya menggunakan object TRzRegIniFile. object ini merupakan object yang dihasilkan oleh raize apabila anda belum mempunya raize anda saya sarankan untuk mendownloadnya terlebih dahulu apabila anda punya uang lebih, silahkan beli licensenya untuk mendownload secara free anda bisa ambil dari situs dibawah ini www.delphifans.com <-- tanpa harus register www.51delphi.com <-- anda harus register terlebih dahulu www.2ccc.com <-- anda tidak perlu register semoga ini bisa menambah wawasan dan pengetahuan mengenai dunia delphi baik secara nasional maupun internasional NB: sebenarnya tanpa komponen tambahan pun juga bisa cuma agak panjang dikit.
user image
more 12 years ago

em052007

kalau koneksinya menggunakan MySQLDAC gmn caranya? ada yang bisa bantu saya?
user image
more 12 years ago

EkoIndri

waduh, saya lom pernah pakai MY SQL silahkan temen2 yang lain jaa deh yang jawab....
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com