sql server a kodla bağlanmak ?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kodcuminik
Üye
Mesajlar: 140
Kayıt: 11 Oca 2009 10:25

sql server a kodla bağlanmak ?

Mesaj gönderen kodcuminik »

merhaba

sql server a

Adoconnection
DataSource
Datacontrol

bileşenlerini kullanarak bağlana biliyorum
ama bunun tamamını kodla yapmak istiyorum
yani connection string nasıl yazmalıyım ?

ve bunu editlerle kullanıcıya yaptırmak istiyorum

bağlantı satırlarını bilmedigim
için yapamıyorum bunu yapmak istememin sebebide
her bilgisayarda sql adı farklı veritabanı adıda farklı bu yüzden nasıl bir yol izlemeliyim mantık dogrumudur

teşekkürler.
bilmezler bilmediklerinide bilmezler ama kendilerini bilir sanırlar
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: sql server a kodla bağlanmak ?

Mesaj gönderen conari »

Kod: Tümünü seç

ConnectionString:='Provider=SQLOLEDB.1;Password='''+Edsvrpass.Text+''';Persist Security Info=True;User ID='''+Edsvruser.Text+''';'+
'Data Source='''+Cmbsrv.Text+''';Use Procedure for Prepare=1;Auto Translate=True;'+
'Packet Size=4096;Use Encryption for Data=False;'+
'Tag with column collation when possible=False';
kullanılabilir serverlar
--------------

Kod: Tümünü seç

procedure ListAvailableSQLServers(Names : TStrings);
var
RSCon: ADORecordsetConstruction;
Rowset: IRowset;
SourcesRowset: ISourcesRowset;
SourcesRecordset: _Recordset;
SourcesName, SourcesType: TField;

function PtCreateADOObject(const ClassID: TGUID): IUnknown;
var
Status: HResult;
FPUControlWord: Word;
begin
asm
FNSTCW FPUControlWord
end;
Status := CoCreateInstance(
CLASS_Recordset,
nil,
CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER,
IUnknown,
Result);
asm
FNCLEX
FLDCW FPUControlWord
end;
OleCheck(Status);
end;
begin
SourcesRecordset := PtCreateADOObject(CLASS_Recordset) as _Recordset;
RSCon := SourcesRecordset as ADORecordsetConstruction;
SourcesRowset := CreateComObject(ProgIDToClassID('SQLOLEDB Enumerator')) as ISourcesRowset;
OleCheck(SourcesRowset.GetSourcesRowset(nil, IRowset, 0, nil, IUnknown(Rowset)));
RSCon.Rowset := RowSet;
with TADODataSet.Create(nil) do
try
Recordset := SourcesRecordset;
SourcesName := FieldByName('SOURCES_NAME'); { do not localize }
SourcesType := FieldByName('SOURCES_TYPE'); { do not localize }
Names.BeginUpdate;
try
while not EOF do
begin
if (SourcesType.AsInteger = DBSOURCETYPE_DATASOURCE) and (SourcesName.AsString <> '') then
Names.Add(SourcesName.AsString);
Next;
end;
finally
Names.EndUpdate;
end;
finally
Free;
end;
End;
kullanım

Kod: Tümünü seç

 ListAvailableSQLServers(cmbsrv.Items);
comboya listele

server çalışıyormu

Kod: Tümünü seç

function IsSQLServerRunning(const server,database,user,password:string): Boolean;
var
  TempConnection: TADOConnection;  //uses ADODB
  TempConnectionString: string;
begin
   result := false;
   try
      CoInitialize(nil);  //uses ActiveX
      try
         TempConnection := TADOConnection.Create(nil);
         TempConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=%s;Password=%s;Initial Catalog=%s;Data Source=%s';
         TempConnection.CommandTimeOut := 4;
         TempConnection.ConnectionTimeOut := 4;
         TempConnection.ConnectionString := Format(TempConnectionString, [user, password, database, server]);
         TempConnection.KeepConnection := false;
         TempConnection.LoginPrompt := false;
         TempConnection.Open;
         result := true;
      except
            result := false;
       end
   finally
      CoUninitialize;
      TempConnection.Close;
      TempConnection.Free;
      TempConnection := nil;
   end;
end;
kullanım

Kod: Tümünü seç

 if  IsSQLServerRunning(cmbsrv,Cmbsirket.Text,Edsvruser,Edsvrpass) then
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla