вторник, 23 августа 2011 г.

Подключении к базе MSSQL2008 from Delphi

После сутановки SQL 2008 EXPRESS понадобилось в программе на Delphi сделать подключение и для старого сервера SQL 2000 и для нового SQL 2008.

Вот кусок программы. К sql2008 я подключился через новый драйвер, а к sql2000 по старому варианту ADO. При старом варианте (АDO) важно - для параметра "имя сервера",  указать: имя сервера и через запятую номер порта. Теперь можно работать и с новым сервером sql2008 как с его новым драйвером, так и старым, через ADO. Большой разнице между ними я не увидел, а практике мне больше направится старый вариант, меньше проблем с полями datetime.

  if typeServer='2008' then begin
    // для нативного клиента 10.0 от Microsoft
    Connection1.Provider:='SQLNCLI10.1';
    Connection1.ConnectionString:='Provider=SQLNCLI10.1;Password=123;Persist Security Info=False;User ID=sa;Initial   
                   Catalog=nameBase;Data Source=nameServer;Initial File Name="";Server SPN=""';
  end else begin
    Connection1.Provider:='SQLOLEDB.1';
     Connection1.ConnectionString:='Provider=SQLOLEDB.1;Password=123;Persist Security Info=False;User 
      ID=sa;Initial Catalog=nameBase;Data Source=nameServer,1433;Packet Size=4096;Use Encryption for 
     Data=False;Use Procedure for Prepare=1;Auto Translate=True;'
  end;

Еще был момент связан с настройкой доступа к серверу по TCP. Для этого нужно включить в конфигурации SQL сами протоколы. И самое главное нужно запустить сервис "Браузер SQL Server". Вот выдержка из документации:

Если служба «SQL Server, браузер» не запущена, то возможность соединения с SQL Server остается только при указании верного номера порта или именованного канала. Например, к экземпляру SQL Server по умолчанию можно подключиться по порту TCP/IP, если он прослушивает порт 1433.

Комментариев нет:

Отправить комментарий