Kopia wikimirror

To jest mirror wiki z pascal.chat. Edycja, historia i logowanie są tam.

mssqlconn/pl

English · Español · Français · Polski

Moduł MSSQLConn

MSSQLConn to moduł fcl-db zawierający kod konektora dla TMSSQLConnection (MS SQL Server) i TSybaseConnection (Sybase ASE).

Lazarus używa MSSQLConn do prezentowania konektora MS SQL i konektora Sybase ASE.

DBLib

MSSQLConn używa modułu niskiego poziomu dblib, który wymaga biblioteki FreeTDS (.dll/.dylib/.so) do połączenia z serwerem.

Instalacja

Jedyne, czego potrzebujesz, to biblioteka FreeTDS dll/dylib/so dla twojej platformy.

Zaawansowane użycie: przez modyfikację pliku FPC dblib.pas, SQLDB może używać „natywnej” biblioteki ntwdblib.dll zamiast domyślnej biblioteki FreeTDS dblib.dll (w tym przypadku FPC musi zostać przekompilowane).

Dokumentacja

Oficjalna dokumentacja: FPC MSSQLConn

Ograniczenia i wskazówki

Jak określa dokumentacja:

Zmiana nazwy sterownika i/lub pozycji

Parametry wyjściowe procedur składowanych

Ponadto TMSSQLConnection i TSybaseConnection nie wspierają obsługi statusu zwrotu i parametrów wyjściowych procedur składowanych. Więcej informacji na stronie: http://www.freetds.org/faq.html#ms.output.parameters Jako obejście możesz użyć czegoś takiego:

pascal
with SQLQuery1 do begin
  SQL.Text := 'declare @param int; declare @ret int;' +
              'exec @ret=MyStoredProc 1, @param OUTPUT;' +
              'select @ret as return_status, @param as out_param';
  Open;
end;

Kilka dodatkowych wskazówek:

Komunikaty błędów

Error 20009 : Unable to connect: Adaptive Server is unavailable or does not exist

Nie można nawiązać połączenia: Adaptive Server jest niedostępny lub nie istnieje

Error 20019 : Attempt to initiate a new Adaptive Server operation with results pending

Próba zainicjowania nowej operacji Adaptive Server z oczekującymi wynikami

Error 20047 : DBPROCESS is dead or not enabled

DBPROCESS jest martwy lub nie jest włączony

EINOutError/Can not load DB-Lib client library "dblib.dll". Check your installation

Nie można załadować biblioteki klienta DB-Lib „dblib.dll”. Sprawdź swoją instalację

Przykłady

Tworzenie bazy danych

Poniższy przykład tworzy bazę danych na serwerze MS SQL Server. Aby to zadziałało, parametr połączenia AutoCommit musi być włączony. W przypadku kolejnego zwykłego połączenia możesz je ponownie wyłączyć i użyć zwykłych metod StartTransaction i Commit.

pascal
// Skonfiguruj formularz z przyciskiem o nazwie DBButton, 
// pole tekstowe o nazwie DatabaseNameEdit,
// '''MSSQLConnection''' o nazwie FConn
// ***upewnij się, że parametr Autocommit jest włączony dla tworzonej części bazy danych przed połączeniem:
//FConn.Params.Add('AutoCommit=true');
procedure TForm1.CreateDBButtonClick(Sender: TObject);
var
  CurrentDB: string;
begin
  if DatabaseNameEdit.Text = '' then
  begin
    showmessage('Pusta nazwa bazy danych. Podaj najpierw nazwę bazy danych.');
    exit;
  end;

  CurrentDB := FConn.DatabaseName;
  try
    // Dla FPC 2.6.1+
    FConn.ExecuteDirect('CREATE DATABASE ' + DatabaseNameEdit.Text);
    {
    // To działa z FPC 2.7.1, ale nie z 2.6.1
    FConn.CreateDB;
    }
  except
    on E: Exception do
    begin
      showmessage('Uruchamianie CreateDB wywołało wyjątek: ' + E.Message);
    end;
  end;
end;

From the Free Pascal wiki, page "mssqlconn/pl", as it stood on 2021-11-12 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Wersja 1, ostatnia zmiana: WikiArchive, .