Sign in Join
Wiki copytemporary

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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.