// Hier den Datenbanktypen abfragen und die Werte für Cursor ... setzen.
// CursorLocation bei SQLite muss wohl clUseClient sein,
// bei Access aber clUseServer
// Hier noch testen, was bei SQLite am sinnvollsten ist.
if fDBIsSQLite
then begin
// ctUnspecified, ctOpenForwardOnly, ctKeyset, ctDynamic, ctStatic
// Diese Variante spart Arbeitsspeicher und ist schnell.
// Aber es gibt keine RecNo.
// Änderungen von Datensätzen nicht möglich.
// con.CursorLocation := clUseServer; // Dann gibt es keine RecNo :-(
// qrySQL.CursorType := ctKeyset;
// qrySQL.CursorType := ctStatic;
// Benötigt viel Arbeitsspeicher, deutlich mehr, als die Datenbankgröße.
// Ist sehr langsam.
qrySQL.CursorLocation := clUseClient;
qrySQL.CursorType := ctDynamic;
// qrySQL.CursorType := ctStatic;
// qrySQL.CursorType := ctKeyset;
// dbckOK ist 'ne TDBCheckBox
dbckOK.ValueChecked := '
T';
dbckOK.ValueUnchecked := '
F';
end else
if fDBIsAccess
then begin
qrySQL.CursorLocation := clUseServer;
qrySQL.CursorType := ctStatic;
dbckOK.ValueChecked := '
Wahr';
dbckOK.ValueUnchecked := '
Falsch';
end else
if fDBIsPostGres
then begin
// Programmhänger beim Speichern neuer Datensätze.
qrySQL.CursorLocation := clUseClient;
qrySQL.CursorType := ctDynamic;
// Programmhänger beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseClient;
// qrySQL.CursorType := ctStatic;
// Programmhänger beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseClient;
// qrySQL.CursorType := ctKeyset;
// Programmhänger beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseClient;
// qrySQL.CursorType := ctUnspecified;
// beendet den Datenbankprozess von PostGres beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseServer;
// qrySQL.CursorType := ctDynamic;
// beendet den Datenbankprozess von PostGres beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseServer;
// qrySQL.CursorType := ctStatic;
// beendet den Datenbankprozess von PostGres beim Speichern neuer Datensätze.
// qrySQL.CursorLocation := clUseServer;
// qrySQL.CursorType := ctKeyset;
// Läßt bereits das Lesen von Datensätzen nicht zu.
// qrySQL.CursorLocation := clUseServer;
// qrySQL.CursorType := ctUnspecified;
dbckOK.ValueChecked := '
t';
dbckOK.ValueUnchecked := '
f';
end else
if fDBIsFirebird
then begin
qryMaxTextverwaltungID.SQL.Text := '
SELECT GEN_ID(gen_TextverwaltungID,1) FROM RDB$DATABASE';
qrySQL.CursorLocation := clUseClient;
qrySQL.CursorType := ctDynamic;
dbckOK.ValueChecked := '
1';
dbckOK.ValueUnchecked := '
0';
end else begin
// Ansonsten?
qrySQL.CursorLocation := clUseClient;
qrySQL.CursorType := ctDynamic;
dbckOK.ValueChecked := '
1';
dbckOK.ValueUnchecked := '
0';
end;
qryMaxTextverwaltungID.CursorLocation := qrySQL.CursorLocation;
qryMaxTextverwaltungID.CursorType := qrySQL.CursorType;
qryExecSQL.CursorLocation := qrySQL.CursorLocation;
qryExecSQL.CursorType := qrySQL.CursorType;
// Diese Kombination scheint bei FireBird und TAdoTable zu funktionieren.
// Nein, nicht wirklich.
// Bei einem Refresh gibt es eine Fehlermeldung.
if fDBIsFirebird
then begin
if not tbTextVergleich.Active
then begin
tbTextVergleich.CursorLocation := clUseClient;
tbTextVergleich.CursorType := ctUnspecified;
end;
if not tbTextVerwaltung.Active
then begin
tbTextVerwaltung.CursorLocation := clUseClient;
tbTextVerwaltung.CursorType := ctUnspecified;
end;
end else begin
if not tbTextVergleich.Active
then begin
tbTextVergleich.CursorLocation := qrySQL.CursorLocation;
tbTextVergleich.CursorType := qrySQL.CursorType;
end;
if not tbTextVerwaltung.Active
then begin
tbTextVerwaltung.CursorLocation := qrySQL.CursorLocation;
tbTextVerwaltung.CursorType := qrySQL.CursorType;
end;
end;