Freigeben über


Verwalten von Verbindungen mittels SQL Pass-Through

Beim Erstellen einer Remoteansicht können Sie einen ODBC-Datenquellennamen oder einen Verbindungsnamen auswählen, der dann beim Aktivieren der Ansicht das Bindeglied zum Remoteserver darstellt. Wenn Sie mit SQL Pass-Through-Funktionen direkt auf Remotedaten zugreifen möchten, muss Ihnen die Kennung einer aktiven Verbindung zur Verfügung stehen. Eine Kennung ist ein Wert, der auf ein Objekt verweist; in diesem Fall verweist die Kennung auf eine Verbindung zu einer Datenquelle. Sie erhalten eine Kennung, indem Sie mit einer der Funktionen SQLCONNECT( ) oder SQLSTRINGCONNECT( ) eine Verbindung zu der gewünschten Datenquelle herstellen. Kann die Verbindung fehlerfrei hergestellt werden, empfängt Ihre Anwendung eine Verbindungskennung, die in späteren Visual FoxPro-Aufrufen verwendet werden kann.

Ihre Anwendung kann für eine Datenquelle mehrere Verbindungen anfordern. Sie können auch mit mehreren ODBC-Datenquellen arbeiten, indem Sie für jede Datenquelle, auf die Sie zugreifen möchten, eine Verbindung anfordern. Wenn Sie die Anzahl der eingesetzten Verbindungen einschränken möchten, können Sie Remoteansichten konfigurieren, um eine Verbindung zur gemeinsamen Nutzung freizugeben. Mit der SQLDISCONNECT( )-Funktion können Sie die Verbindung zu einer Datenquelle trennen.

Tipp   Visual FoxPro stellt eine Verbindung zu einer ODBC-Datenquelle anhand der Datenquellendefinition her, die in der Windows-Datei Odbc.ini oder in der Registrierung von Windows NT gespeichert ist. Wenn Sie den Namen oder die Anmeldeinformationen einer Datenquelle ändern, müssen Sie bedenken, dass diese Änderungen sich darauf auswirken können, ob eine Anwendung, die auf diese Datenquelle zugreift, eine Verbindung zu dem gewünschten Remoteserver herstellen kann oder nicht.

Festlegen der Umgebungs- und der Verbindungseigenschaften

Die Client/Server-Umgebung wird jedes Mal eingerichtet, wenn Sie Visual FoxPro starten. Die Umgebung existiert für diese Arbeitssitzung von Visual FoxPro und wird gelöscht, sobald Sie Visual FoxPro beendet haben. Eine Client/Server-Umgebung enthält folgende Elemente:

  • Globale Eigenschaften, die als Muster für neue Verbindungen dienen.
  • Fehlerwerte für Fehler, die außerhalb einer bestimmten Verbindung auftreten.

Wenn Sie 0 als Kennung angeben (die Umgebungskennung), haben Sie Zugang zu den Einstellungen der globalen Eigenschaften. Mit der SQLSETPROP( )-Funktion können Sie sowohl die Standardeinstellungen der Verbindungsumgebung als auch die Eigenschaften einzelner Verbindungen festlegen. Die Regeln, die für die Eingabe von SQLSETPROP( )-Werten gelten, sind für die Umgebungseigenschaften sowie die Eigenschaften einzelner Verbindungen gleich:

  • Bei Eigenschaften, für die es nur zwei Werte gibt, kann für eExpression ein logischer Wert (.F. oder .T.) verwendet werden.
  • Der Name einer Eigenschaft kann bis auf die Mindestlänge gekürzt werden, bis zu der er noch unverwechselbar ist. So können Sie zur Angabe der Asnchronous-Eigenschaft z. B. "Asynchronous", "Asynch" oder "A" verwenden. Bei Eigenschaftennamen müssen Sie die Groß-/Kleinschreibung nicht beachten.

Wenn Sie eine Verbindung herstellen, erbt die Verbindung die Standardwerte der Verbindungseigenschaften. Mit SQLSETPROP( ) können Sie diese Werte ändern.

Festlegen der Eigenschaften einer Verbindung

Die aktuellen Einstellungen der Eigenschaften einer Verbindung können Sie abrufen, indem Sie eine SQLGETPROP( )-Funktion mit der Kennung der Verbindung ausgeben. In der folgenden Tabelle sind die Verbindungseigenschaften zusammengestellt, die Sie mit SQLGETPROP( ) abrufen können.

Visual FoxPro-Verbindungseigenschaften

Aufgabenstellung Eigenschaft Zweck
Anzeigen der Informationen über das Erstellen der aktiven Verbindung ConnectString Verbindungszeichenfolge für den Anmeldevorgang.
  DataSource Der mittels ODBC definierte Name der Datenquelle
  Kennwort Verbindungskennwort
  UserID Benutzer-ID
Arbeiten mit gemeinsam genutzten Verbindungen ConnectBusy Wenn mit einer gemeinsam genutzten Verbindung gerade gearbeitet wird, ist die Eigenschaft auf Wahr (.T.), ansonsten auf Falsch (.F.) festgelegt.
Steuern der Anzeige der Schnittstelle DispLogin Steuert, wann das ODBC-Anmeldedialogfeld angezeigt wird.
  DispWarnings Steuert, ob Warnungen mit geringer Bedeutung angezeigt werden.
Steuern von Zeitintervallen ConnectTimeout Gibt den Zeitraum (in Sekunden) an, der vergeht, bevor ein Zeitüberschreitungsfehler für Verbindungen zurückgegeben wird.
  IdleTimeout Gibt das Zeitüberschreitungsintervall für die Leerlaufzeit (in Sekunden) an. Entsprechende aktive Verbindungen werden nach dem angegebenen Zeitintervall aktiviert.1
  WaitTime Steuert das Zeitintervall (in Millisekunden), das vergeht, bevor Visual FoxPro prüft, ob die SQL-Anweisung vollständig ausgeführt wurde.
  QueryTimeout Steuert den Zeitraum (in Sekunden), der vergeht, bevor ein allgemeiner Zeitüberschreitungsfehler zurückgegeben wird.
Verwalten von Transaktionen Transactions Legt fest, wie die Verbindung Transaktionen in der Remotetabelle verwaltet.
Steuern des Abrufens von Resultsets und Ablegen in den Cursorn von Ansichten Asynchronous Gibt an, ob Resultsets synchron (Standard) oder asynchron zurückgegeben werden.
  BatchMode Gibt an, ob SQLEXEC( ) Resultsets gleichzeitig (Standard) oder einzeln mit SQLMORERESULTS( ) zurückgibt.
  PacketSize Gibt die Größe des von der Verbindung verwendeten Netzwerkpakets an.
Anzeigen interner ODBC-Kennungen ODBChdbc2 Die interne ODBC-Verbindungskennung, die von externen Bibliotheksdateien (FLL-Dateien) verwendet werden kann, um die ODBC-API-Funktionen aufzurufen.
  ODBChstmt2 Die interne ODBC-Kennung für Anweisungen, die von externen Bibliotheksdateien (FLL-Dateien) verwendet werden kann, um die ODBC-API-Funktionen aufzurufen.

1. Wenn Sie sich im Modus "Manuelle Transaktionen" befinden, wird die Verbindung nicht deaktiviert.

2. Ist eine Verbindung deaktiviert, sind die Werte für ODBChdbc und ODBChstmt nicht mehr gültig. Diese Werte dürfen in einer Benutzerbibliothek nicht freigegeben oder gelöscht werden.

Weitere Informationen über Verbindungseigenschaften sowie deren Standardeinstellungen finden Sie unter SQLSETPROP( ).

Einstellen der Umgebungseigenschaften

Die Werte, die Sie in der Visual FoxPro-Umgebung bei Angabe der Kennung 0 festlegen, werden für jede spätere Verbindung oder Anlage als Muster bzw. Standardwerte verwendet.

So zeigen Sie die aktuelle Einstellung von Umgebungseigenschaften an

Die im folgenden Beispiel angegebene Funktion zeigt die aktuelle Einstellung der Umgebungseigenschaft WaitTime an:

? SQLGETPROP(0, "WaitTime")

Wenn Sie die DispWarnings-Eigenschaft auf Wahr (.T.) festlegen, zeigt Visual FoxPro ab diesem Zeitpunkt alle umgebungsbezogenen Fehler an und legt die DispWarnings-Eigenschaft jeder neu hergestellten Verbindung auf Wahr (.T.) fest.

Obwohl die Werte, die Sie für die Kennung 0 angegeben haben, als Musterwerte der einzelnen Verbindungen verwendet werden, können Sie auch benutzerdefinierte Eigenschaften für eine Verbindung festlegen, indem Sie für die entsprechende Verbindungskennung SQLSETPROP( ) angeben. Ausnahmen bilden dabei die Eigenschaften ConnectTimeout, PacketSize und DispLogin. Deren Einstellungen erbt die Verbindung während des Verbindungsvorgangs. Wenn Sie die Einstellung der Eigenschaften ConnectTimeout, PacketSize oder DispLogin ändern, wird die neue Einstellung erst wirksam, nachdem Sie die Verbindung erneut hergestellt haben.

Steuern von Verbindungs- und Ansichts-Objekten

Sie können Verbindungen und Ansichten steuern, indem Sie für die Verbindung bzw. das Ansichts-Objekt Eigenschaften festlegen. Eigenschaften, die Datenbanken, Tabellen, Tabellenfelder, Ansichtsdefinitionen, Ansichtsfelder, benannte bzw. aktive Verbindungen oder Cursor aktiver Ansichten steuern, werden Engine-Eigenschaften genannt. Mit den folgenden Visual FoxPro-Funktionen können Sie Engine-Eigenschaften anzeigen oder festlegen:

Funktionen zum Anzeigen von Engine-Eigenschaften Funktionen zum Festlegen von Engine-Eigenschaften
CURSORGETPROP( ) CURSORSETPROP( )
DBGETPROP( ) DBSETPROP( )
SQLGETPROP( ) SQLSETPROP( )

Welche Funktion die jeweils geeignete ist, hängt davon ab, ob Sie Eigenschaften für das Objekt 0 (Verbindung 0 und Cursor 0), die Objektdefinition in einer Datenbank (benannte Verbindung oder Ansichts-Definition) oder für das aktive Objekt (aktive Verbindung oder Cursor einer aktiven Ansicht) festlegen möchten. Die folgende Tabelle enthält die Objekte sowie die Funktionen, mit denen Sie Eigenschaften für das jeweilige Objekt festlegen können:

Objekt, für das Sie Eigenschaften festlegen möchten Verbindung Umgebung
Objekt 0 SQLSETPROP( ) CURSORSETPROP( )
Objektdefinition in einer Datenbank DBSETPROP( ) DBSETPROP( )
Aktives Objekt SQLSETPROP( ) CURSORSETPROP( )

Engine-Eigenschaften

In der folgenden Tabelle sind die Engine-Eigenschaften in alphabetischer Reihenfolge aufgeführt sowie die Objekte, für die diese Eigenschaften festgelegt werden können.

Engine-Eigenschaft Betrifft
Asynchronous Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
BatchMode Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
BatchUpdateCount1 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
Buffering Cursor aktiver Ansichten: siehe CURSORSETPROP( )
Caption Tabellenfelder, Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
Comment Datenbanken, Tabellen, Tabellenfelder, Ansichtsdefinitionen, Felder in Ansichtsdefinitionen, Verbindungsdefinitionen: siehe DBSETPROP( )
CompareMemo Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
ConnectBusy Aktive Verbindungen: siehe SQLGETPROP( )
ConnectHandle Cursor aktiver Ansichten: siehe CURSORGETPROP( )
ConnectName1 Ansichtsdefinitionen: siehe DBSETPROP( )
Aktive Verbindungen: siehe SQLGETPROP( )
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
ConnectString Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLGETPROP( )
ConnectTimeout Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
Database Cursor aktiver Ansichten: siehe CURSORGETPROP( )
DataSource Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLGETPROP( )
DataType Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
DefaultValue Tabellenfelder, Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
DeleteTrigger Tabellen: siehe DBGETPROP( )
DispLogin Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
DispWarnings Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
FetchAsNeeded Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
FetchMemo1 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
FetchSize1 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
IdleTimeout Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
InsertTrigger Tabellen: siehe DBGETPROP( )
KeyField Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
KeyFieldList2 Cursor aktiver Ansichten: siehe CURSORSETPROP( )
MaxRecords1 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
ODBCHdbc Aktive Verbindungen: siehe SQLGETPROP( )
ODBCHstmt Aktive Verbindungen: siehe SQLGETPROP( )
Offline Ansichtsdefinitionen: siehe DBGETPROP( )
PacketSize Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
ParameterList Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
Kennwort Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLGETPROP( )
Path Tabellen: siehe DBGETPROP( )
Prepared Ansichtsdefinitionen: siehe DBSETPROP( )
PrimaryKey Tabellen: siehe DBGETPROP( )
QueryTimeout Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
RuleExpression Tabellen, Tabellenfelder, Ansichtsdefinitionen, Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
RuleText Tabellen, Tabellenfelder, Ansichtsdefinitionen, Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
SendUpdates2 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
ShareConnection Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
SourceName Cursor aktiver Ansichten: siehe CURSORGETPROP( )
SourceType Ansichtsdefinitionen: siehe DBGETPROP( ).
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
SQL Ansichtsdefinitionen: siehe DBGETPROP( ).
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
Tables2 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( ).
Transactions Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
Updatable Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
UpdatableFieldList2 Cursor aktiver Ansichten: siehe CURSORSETPROP( )
UpdateName Felder in Ansichtsdefinitionen: siehe DBSETPROP( )
UpdateNameList2 Cursor aktiver Ansichten: siehe CURSORSETPROP( )
UpdateTrigger Tabellen: siehe DBGETPROP( )
UpdateType Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )
UseMemoSize1 Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORGETPROP( )
UserID Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLGETPROP( )
Version Datenbanken: siehe DBGETPROP( )
WaitTime Verbindungsdefinitionen: siehe DBSETPROP( ).
Aktive Verbindungen: siehe SQLSETPROP( ).
WhereType Ansichtsdefinitionen: siehe DBSETPROP( )
Cursor aktiver Ansichten: siehe CURSORSETPROP( )

1. Diese Eigenschaft eignet sich hauptsächlich für Remoteansichten; die Einstellung hat keine Auswirkungen auf das Leistungsverhalten lokaler Ansichten. Sie können diese Eigenschaft für lokale Ansichten im Rahmen einer Voreinstellung festlegen, und die lokale Ansicht später in eine Remoteansicht übertragen.

2. Diese Eigenschaft muss für Aktualisierungen festgelegt werden, die an eine Remotedatenquelle gesendet werden.

Verwenden von Transaktionen mit Remotedaten

Sie können Aktualisierungs-, Lösch- und Einfügevorgänge auf zwei Arten in Transaktionen einbetten:

  • Modus "Automatische Transaktionen"
  • Modus "Manuelle Transaktionen"

Der ausgewählte Transaktionsmodus legt fest, wie Visual FoxPro auf Ihrem lokalen Computer Transaktionen verwaltet.

Siehe auch

Ausführung von ODBC-Erweiterungen für SQL | Arbeiten im Modus "Automatische Transaktionen" | Verwenden der SQL Pass-Through-Technologie | Implementieren einer Client/Server-Anwendung | Entwurf von Client/Server-Anwendungen | Upsizing von Visual FoxPro-Datenbanken | Erstellen von Ansichten