MySQL ODBC Driver Kodla DSN oluşturma

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
ayhanarican
Üye
Mesajlar: 37
Kayıt: 03 Tem 2003 01:24
Konum: İzmir
İletişim:

MySQL ODBC Driver Kodla DSN oluşturma

Mesaj gönderen ayhanarican »

MySQL ODBC Driver 3.51 'i yükledim ve Artık database olarak MySQL kullanıyorum. Normal Table ve Query ile kullanıyorum.(Delphi 6.0, MySQL 4.0.16-nt)

1-) Kodla nasıl MySQL ODBC Driver 'ını kullanan DSN oluştururum.
Parametreler(Server , User , Password, Database)

2-) Tablolara yeni kayıt girebiliyorum fakat varolan bir kayıtı değiştirip kaydetmeye çalıştığımda sorun çıkartıyor.

Not: Eğer yanlış yere yazdıysam veya topic kirliliğine neden olduysam özür dilerim.MySQL başlıklı bir topic bulamadım.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

MySQL icin nasil yapacaginizi tam olarak bilemiyorum ama bunu nasil ogreneceginizin yontemini biliyorum. Soyle ki:

Kendi makinanizda bir DSN vardir zaten. Makinanizda Regedit ile Registry'ye girin. HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources altinda sizin ODBC DSN'iniz ile ilgili deger oldugunu goreceksiniz...
ayrica DSN adinin Etis oldugunu varsayarsak ayrica HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Etis isimli bir key oldugunu da goreceksiniz ve o key'in icinde sizin ODBC DSN'deki parametrelerin degerlerinin var oldugunu goreceksiniz.

İster programinizin kurulumu sirasinda kurulum programi tarafindan isterseniz Delphi icinden kodla bu degerleri eklediginiz taktirde ODBC DSN'ininiz hazir olacaktir.

Kod: Tümünü seç

procedure TDTM_MAIN.DTM_MAINCreate(Sender: TObject);
var
  Reg: TRegistry;
  VAR_ETIS_DIZINI:string;
begin
  VAR_EXE_VERSIYON:='6.0';
  DTB_ETIS.LoginPrompt:=True;

  VAR_PROGRAM_DIZINI := ExtractFilePath(Application.ExeName);
  VAR_ETIS_DIZINI:=Copy(VAR_PROGRAM_DIZINI,1,Pos('\PROGRAMS\',Uppercase(VAR_PROGRAM_DIZINI)));//Programin ana dizini bulunuyor....

  // Etis dsn i kontorl ediliyor yoksa olusturuluyor
  Reg := TRegistry.Create;
  try
    Reg.RootKey:=HKEY_CURRENT_USER;
    if not Reg.OpenKey('Software\ODBC\ODBC.INI\Etis',False) and DirectoryExists(VAR_ETIS_DIZINI+'ASA\Win32\') then
        begin
          Reg.OpenKey('Software\ODBC\ODBC.INI\Etis',True);
          Reg.WriteString('AutoStop','YES');
          Reg.WriteString('Delphi','Yes');
          Reg.WriteString('DatabaseFile',VAR_ETIS_DIZINI+'Databases\Etis.db');
          Reg.WriteString('Driver',VAR_ETIS_DIZINI+'ASA\Win32\dbodbc8.dll');
          Reg.WriteString('Integrated','NO');
        end;
  finally
    Reg.CloseKey;
    if not   Reg.OpenKey('Software\ODBC\ODBC.INI\ODBC Data Sources',True) then
      ShowMessage('Bilgisayarinizin ODBC sisteminde problem var...')
    else
    begin
      Reg.WriteString('Etis','Adaptive Server Anywhere 8.0');
    end;
    Reg.CloseKey;
    Reg.Free;
  end;
end;
Tabi buradaki key'ler ve degerler Sybase ASA icin olanlar. Bu ornegi registry'i de inceleyerek MySQL icin kolayca degistirebilir gerekli eklemeleri ve cikarmalari yapabilirsiniz...
Armani
Üye
Mesajlar: 104
Kayıt: 18 Mar 2004 05:32
Konum: Ankara

Mesaj gönderen Armani »

Ben bu kodları nereye yazacagımı anlayamadım.

yardımınızı beklerim

teşekkürler
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bu kodlari mesela programinizin create edilen ilk datamodulu veya formunun oncreate eventine yazabilirsiniz... Ama mesajda da uzunca izah ettigim uzere bu sizin isteginizi birebir yapmayacaktir. Sadece size bir ornek olmasi sebebi ile godnerdim. Siz yine tarif ettigim sekilde kendi dsn'ininizin regisrty degerlerine bakip onlari olusturmalısınız....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Armani
Üye
Mesajlar: 104
Kayıt: 18 Mar 2004 05:32
Konum: Ankara

Mesaj gönderen Armani »

Bu problemimi ben installsheld ile çözdüm. Build etmeden önce fahrettin abinin dedigi gibi register dosyasından sadece gerekli olan kısmı installsheld da aktarıp yapabildim.
Pc ye kurulum esnasında otomatik olarak System Dsn ayarlarını yapıyor

bilginize
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

önce sen bi dsn yarat. Ondan sonra

makinanda Regedit ile Registry'ye gir. HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources
altında senin yarattığın dsn in ile ilgili değerleri göreceksin.
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ altında kendi dsn ismin olacak. İşte bunların hepsinin değerlerini incele ve programından bu anahtarlarının sana uygun adlarını yarat. Başka türlü bildiğim kadarıyla olmuyor. Bu şekilde yapmalısın yani...
Cevapla