Geçersiz Bağlantı Dizesi Özniteliği

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

Arkadaşlar Merhaba programın exe çalıştırdığım da "Geçersiz Bağlantı Dizesi Özniteliği" diye hata alıyorum çalışan programım şimdi bu hatayı veriyor acaba bağlantı cümlesinden mi yapıyor ? biraz araştırma yaptım sql deki dataya bağlanamıyor ne yapabilirim fikri olan var mı?
işletim sistemi Windows 7
dataconnection

Kod: Tümünü seç

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCAN\NETSIS;Initial Catalog:=+DATA;Auto Translate=False
userconnecton

Kod: Tümünü seç

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=NETSIS;Data Source=OZCAN\NETSIS;Auto Translate=False
birde ;
C:\Windows\SysWOW64 dizininde odbcad32 var onu çalıştırıp Sistem DSN de ekle diyip "SQL Server Native Client" ekledim .
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen sabanakman »

SQL Server 2008 ve üstü kullanıyorsanız (aslen 2005 ile başladı) NATIVE bağlantı kullanabilirsiniz. "OleDB Provider for SQL Server" a göre daha yeni teknolojidir. Tabi "Native" bağlantı için ConnectionString özelliğini aşağıdaki gibi değiştirmenizde fayda var.

Kod: Tümünü seç

const NativeNT_sql2008='Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=%s;Data Source=%s;Auto Translate=False;Initial File Name="";Server SPN=""';

const NativeNT_sql2012='Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog=%s;Data Source=%s;Auto Translate=False;Initial File Name="";Server SPN=""';
..
begin
...
  ADOConnection1.ConnectionString:=Format(NativeNT_sql2008,['NETSIS','OZCAN\NETSIS']);
....
şeklinde SQL Server 2008 bağlantısı yapabilirsiniz. Burada versiyon farklılıklarına dikkat etmek gerekmektedir. Tabi bir sistemde hem SQL 2008 hem de SQL 2012 varsa her iki yöntemle de bağlantılarınız çalışacaktır. Sorun yaşarsanız ilgili provider sürücüleri yüklü olmadığından olabilir ve gerekli sürücüyü indirip kurarak sorunu çözebilirsiniz.

Not..:SQL Server 2012, SQL Server 2000'e destek vermediği için; "Provider=SQLNCLI11.1" ile SQL Server 2000'e bağlantı da yapamazsınız, veritabanlarını direkt SQL Server 2012'ye de yükseltemezsiniz. Arada SQL Server 2008'e yükseltip daha sonra SQL Server 2012 yapabilirsiniz.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

sabanakman çok teşekkür ederim ben 2 bağlantı kullanıyorum ;
dataconnection.txt ve bunun içeriğini sizin yazmış olduğunuz şekilde değiştirdim

Kod: Tümünü seç

const NativeNT_sql2008='Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCANK\NETSIS;Initial Catalog=%s;Auto Translate=False;
const NativeNT_sql2012='Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCANK\NETSIS;Initial Catalog=%s;Auto Translate=False
Diğeri de ;
userconnection.txt

Kod: Tümünü seç

const NativeNT_sql2008='Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCANK\NETSIS;Initial Catalog=%s;Auto Translate=False;
const NativeNT_sql2012='Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCANK\NETSIS;Initial Catalog=%s;Auto Translate=False
bu şekilde yaptım şimdi şöylebir mesaj veriyor "Başlatma dizesi biçimi OLE DB belirtimine uymuyor" ve dataları göstermedi.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen sabanakman »

Bir de

Kod: Tümünü seç

const NativeNT='Provider=SQLNCLI;Integrated Security=SSPI;Persist Security Info=False;Data Source=OZCANK\NETSIS;Initial Catalog=%s;Auto Translate=False;';
ekleyerek dene. Eğer sıkıntı oluyorsa Provider Sürücüleri ile alakalı sıkıntı olabilir. Sistemde bulunan Windows'a göre ilgli ncli (Native Client) sürücüsünü yüklemek gerekebilir.

sqlncli_amd64.msi
sqlncli_x86.msi
sqlncli_ia64.msi
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

şöyle bir hata veriyor; invalid connection string attribute"
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

SQL 2012 Kaldırıp tekrar kursam düzelebilir mi?
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen sabanakman »

Hata mesajı belki başka bir noktadan başka bir sebeple de geliyor olabilir boş bir proje ile deneme yapabilirseniz daha sağlıklı olabilir. Mesela bir TButon, bir TEdit ve bir TADOConnection'dan oluşan bir proje oluşturun ve ilgili makinede deneme yaparak hangi yöntemle bağlantı sağlanabiliyorsa onu kullanın.

Kod: Tümünü seç

uses AdoConEd;
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:='';
  if EditConnectionString(ADOConnection1) then begin
    ADOConnection1.Open;
    if ADOConnection1.Connected then Edit1.Text:=ADOConnection1.ConnectionString;
  end;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

Şuan SQL 2012 kaldırıyorum tekrar kurulum yapacağım eğer değişiklik olmazsa dediğiniz yöntemi deneyeceğim yardımınız için size çok teşekkür ederim sonucu buraya yazarım
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

sabanakman kardeşim yardımlarından dolayı çok teşekkür ederim.Ben şunu yaptım SQL2012 tertemiz kaldırdım tekrar yükledim durum değişmedi aynı hata bu sefer dediğiniz gibi boş delphi7 de button edit ve adoconnection ekledim ve bağlantıyı yapınca edit e yolu aldı bende o yolları Userconnection ve dataconnection da kullandım ve bağlantım oldu fakat Türkçe karakterleri göstermiyor acaba eksiltmem gereken veya false / true yapmam gereken alan mı var ?

Kod: Tümünü seç

Provider=SQLNCLI11.1;Integrated Security="";Persist Security Info=False;User ID=sa;Initial Catalog=NETSIS;Data Source=OZCANK\NETSIS;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=OZCANK;Initial File Name="";Use Encryption for Data=False;Tag with column collation when possible=False;MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=False;Application Intent=READWRITE;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen ozcank »

Auto Translate = False yaptım düzeldi şimdi şunu farkettim İ leri filitre etmiyor ama ŞÇÖÜ leri filitre ediyor
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Geçersiz Bağlantı Dizesi Özniteliği

Mesaj gönderen sabanakman »

Delphi 7'nin güzelliği. Unicode Delphi ilk Delphi 2009 ile gelmeye başladı o yüzden daha eski delphi sürümlerinde bu problemi yaşamanız normal görünüyor.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla