sybase server/client,odbc,data field

Sybase veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

sybase server/client,odbc,data field

Mesaj gönderen metemete » 10 Nis 2004 12:20

Sybase de;
1.örneğin server yerine ana makina(windows98 olacak) / client(windows98 olacak) sistemlerinde client olan pc nin odbc tanımları nasıl olmalıdır.

2.odbc oluşturmadan programdan database erişim olabilirmi? olursa nasıl?

3.ikinci sorumum cevabın bilmediğim için soruyorum; örneğin bir stok programı yaptık ve kullanıcıya istediği kadar şirket açma imkanı verdik bu durumda herbir şirket için farklı database oluşturulcak (boş database i açılan şirket ismindeki klasörüre kopyalamasını sağladım) fakat kullanıcı istediği şirkette calışması için her seferinde odbc database tanımlarını değişmesi gerekir çözüm olarak ise;
program içine kod yazarakmı odbc ayarlarını değişmek gerekir? veya başka bir yöntem varmıdır?

4.Database olustururken>table tanımlarında> data field de
"otomatik artan sayı" data field seceneğinde varmı? bulamadım

Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 09:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin » 12 Nis 2004 10:48

1. Server olan pc'de bir database server başlatılmalıdır. sybase ile gelen bir ornek var zaten.... Network server sample seklinde... Bu kısayol tusunda bazi parametreler var....

Kod: Tümünü seç

"C:\Program Files\Sybase\SQL Anywhere 9\win32\dbsrv9.exe" -c 8m -n asademo9 "C:\Program Files\Sybase\SQL Anywhere 9\asademo.db"
-n den sonra server adi tanimliyorsunuz.... -c den sonra da ayrilacak cache'i.
Client tarafinda server name olarak server tarafinda -n'den sonraki tanımlanan ismi yazmalisiniz.... Bir de Network kısmında tcpip'yi isaretleyerek sagdaki bosluga host=server_ip_no yazarsanız baglantı daha hızlı olacak aksi taktirde o server name butun networkte farkli protekoller uzerinde aranacaktir.

2. Olur fakat bilinen en hızlı ve guvenli yontem bu. Aksi taktirde ozel componentler filan kullanmanız ve potansiyel sorunlarla ugrasmanız gerekebilir. Sybase'in Enterpriese surumunu delphi yani bde tanıyor ama ASA'yi desteklemiyor...
3. Her sirket icin farkli bir databse olusturmak bir yontem tabi ama ben kendi adima onu tercih etmiyorum. Tek bir veritabanı icinde sirket tablosu kullanıp sirket bazinda degisen diger butun tablolari da bu tablonun detayi olarak kullanıyorum. Konsolide raporlarda ve genel kullanımda si.rket gecislerinde vs... kolaylik oluyor kanaatimce... Ama dediginiz yontem de olur ve de Delphi icinden kolayca ODBC alias olusturabilirSİniz... Ornek kod:

Kod: Tümünü seç

procedure TDTM_MAIN.DTM_MAINCreate(Sender: TObject);
var
  Reg: TRegistry;
  VAR_ETIS_DIZINI,VAR_PROGRAM_DIZINI:string;
begin
  VAR_PROGRAM_DIZINI := ExtractFilePath(Application.ExeName);
  VAR_ETIS_DIZINI:=Copy(VAR_PROGRAM_DIZINI,1,Pos('\PROGRAMS\',Uppercase(VAR_PROGRAM_DIZINI)));// dizin olarak  "C:\program files\Etis\" 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 //ASA dosyalari "C:\program files\Etis\ASA\Win32\" icinde...
        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;
4. Tabi ki var. Value kısmında Default value secenegini secerseniz. isterseniz user defined yani sizin tanimladiginiz bir otomatik deger isterseniz de system-defined icinden autoincrement secebilirsiniz....

kolay gelsin.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)

Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

sysbase

Mesaj gönderen metemete » 16 Nis 2004 03:48

internetten üzerinden client olarak servera bağlanmak için odbc tanımları nasıl olmalıdır yada nasıl bir yol izlemek gerekir?

Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 09:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin » 16 Nis 2004 04:33

hersey ayni... sadece Network sekmesindeki TCPIP'yi isaretleyip yanina da host=xxx.xxx.xxx.xxx seklinde server ip'sini yazmaniz yeterli....
bir de network paketlerini sıkıştır diye bir selenek var aynı sayfada onu işaretlemek faydalı olacaktır.
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)

Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

Mesaj gönderen metemete » 03 May 2004 09:36

Fahrettin hocam verdiğiniz kodlarla Delphi icinden ODBC alias olusturuyorum ve regedit den görebiliyorum ama denetim masası/odbc veri kaynakları/kullanıcıDSN içinde oluşmuyor?

Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 09:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin » 04 May 2004 09:03

HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources icinde de dsn icin bir satır olması gerekiyor... O olmadıgında gorunmuyor. Gorunur liste oradan alınıp detay ozellikleri de sizin eklediginiz yerde tutuluyor....

Ben bunları sıfır bir ODBC dsn'i el ile olusturup registry'de o dsn ismini aratarak nereye ne eklemiş diyerek bulup koda doktum. Olası gozden kacan seyler icin aynı taktigi uygulayabilirsiniz.

Kolay gelsin....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7455
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek » 04 May 2004 09:36

yani :

1. Kedni bilgisyaarında bir ODBC DSN oluştur.
2. Ayarlamalarını vs. herşeyini yap.
3. sonra regedit ile registry'e girip, HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources içinde verdiğin isimdeki anahtar altında ne var ne yok, karşı makinada oluştur.

Kolay gelsin.

Cevapla