Firebrid, SQLQuery und Status

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.

Firebrid, SQLQuery und Status

Beitragvon kralle » 15. Jul 2017, 15:00 Firebrid, SQLQuery und Status

Moin,

da bin ich schon wieder.

Ich habe auf einem Formular folgende Komponenten:
IBConnection1
SQLTransaction1
SQLQuery1
DataSource1

Damit baue ich eine Verbindung zu einer lokalen Firebird-Datenbank auf.

Aber, immer wennich etwas geändert habe und ein
Code: Alles auswählen
DataSource1.DataSet.Post
und dann ein
Code: Alles auswählen
SQLQuer1.ApplyUpdates(0)
abschicke, erhalte ich berechtigterweise diese Fehlermeldung:
SQLQuery1: Operation not allowed, dataset "SQLQuery1" in not in an edit or insert state.


Mir gelingt es einfach nicht "SQLQuery1" in den "edit"/"insert"-Status zu versetzen.

Irgendwie stehe ich mir gerade selber im Weg und das mitten im Wald.

Wer weißt mir die Richtung?

Gruß Heiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon gladio » 15. Jul 2017, 15:59 Re: Firebrid, SQLQuery und Status

Bist du sicher, daß du das DataSource Posten willst?
Macht man das nicht mit der Query?

etw so
Code: Alles auswählen
 
..
  try
    If QueryXYZ.State in [dsEdit, dsInsert] then QueryXYZ.Post;
  except
    QueryXYZ.Cancel;
    QueryXYZ.AplayUpdate;
  end;
..
gladio
 
Beiträge: 37
Registriert: 21. Jun 2014, 05:15
OS, Lazarus, FPC: Win7/10-32/64 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon kralle » 15. Jul 2017, 16:09 Re: Firebrid, SQLQuery und Status

Moin,

gladio hat geschrieben:Bist du sicher, daß du das DataSource Posten willst?
Macht man das nicht mit der Query?

Da hast Du natürlich recht. Habe ich zwischenzeitlich auch schon geändert.
gladio hat geschrieben:etw so
Code: Alles auswählen
 
..
  try
    If QueryXYZ.State in [dsEdit, dsInsert] then QueryXYZ.Post;
  except
    QueryXYZ.Cancel;
    QueryXYZ.AplayUpdate;
  end;
..

Hmm, das ist die Aktion die ausgeführt werden soll nach der Änderung/Erweiterung.
Aber, ich bekomme die Datenbank nicht in den Status "dsEdit" / "dsInsert" - das ist mein Problem.
Ich kann zwar ein "SQLQuery1.Edit" abschicken, aber wenn ich dann im DBGrid etwas ändere, und dann die Änderung übernehmen will, kommt obige Fehlermeldung.
Ich dreh mich im Kreis ...

Kann es sein, das ich zwar das "DBGrid" mit der Datenbank verbunden habe, aber das man darin keine Daten ändern kann?

Gruß Heiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon gladio » 15. Jul 2017, 17:24 Re: Firebrid, SQLQuery und Status

Diese Phrase müßte in die 'BeforePost' aber ohne 'AplayUpdate'.
Das müßte wohl in die 'AfterPost' .
AplayUpdate nutze ich eigentlich nicht.
In den Eigenschaften von dem DBGrid müßte bei DataSource deine Datasource eingetragen sein.
Ansonsten ist das jetzt ein bischen wie Stochern im Nebel, mit Connectin- und Transactions-Komponente
habe ich keine Erfahrung. Ich verwende Zeos.
gladio
 
Beiträge: 37
Registriert: 21. Jun 2014, 05:15
OS, Lazarus, FPC: Win7/10-32/64 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon wp_xyz » 15. Jul 2017, 17:39 Re: Firebrid, SQLQuery und Status

Und hast du ganz am Anfang QueryXYZ.Edit (bei Datensatz bearbeiten), bzw. QueryXYZ.Insert (neue Datensatz) aufgerufen? Also:

Code: Alles auswählen
QueryXYZ.Edit;
QueryXYZ.FieldByName['Name'] := 'Einstein';
QueryXYZ.FieldByName['Vorname'] := 'Albert';
QueryXYZ.Post;

Übrigens: Datasource.Dataset muss genauso geeignet sein, wenn dort QueryXYZ eingetragen ist - es wird ja nicht Datasource gepostet (was gar nicht geht), sondern der Dataset, der mit Datasource verbunden ist.
wp_xyz
 
Beiträge: 1955
Registriert: 8. Apr 2011, 08:01

Beitragvon kralle » 15. Jul 2017, 18:19 Re: Firebrid, SQLQuery und Status

Also da irgendwas nicht stimmt, habe ich einfach mal im DBGrid in den Event "OnColEnter" ein "SQLQuery1.Edit" platziert.
Jetzt sollte man doch denken, dass bei einem Klick in eine Zelle das "SQLQuery" in den Edit-Modus versetzt, aber Pustekuchen.
Wieder kommt die Fehlermeldung dass "SQLQuery" nicht im Edit-Modus sein :evil:

Ich blick da nicht mehr durch.

Ich packe mal den kompletten Projektordner hier als ZIP rein.

Gruß Heiko
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon gladio » 15. Jul 2017, 18:38 Re: Firebrid, SQLQuery und Status

Ist dein DBNavigator mit der Datasource verbunden?
Eigentlich müssen die Schalter im DBNavigator nicht extra im OnClick mitgeteilt bekommen, was sie zu tun haben.
Das wurde da schon reinprogrammiert.
gladio
 
Beiträge: 37
Registriert: 21. Jun 2014, 05:15
OS, Lazarus, FPC: Win7/10-32/64 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon kralle » 15. Jul 2017, 18:50 Re: Firebrid, SQLQuery und Status

Moin,

gladio hat geschrieben:Ist dein DBNavigator mit der Datasource verbunden?

Ja.
gladio hat geschrieben:Eigentlich müssen die Schalter im DBNavigator nicht extra im OnClick mitgeteilt bekommen, was sie zu tun haben.
Das wurde da schon reinprogrammiert.

Dachte ich auch.

Gruß HEiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon gladio » 15. Jul 2017, 18:59 Re: Firebrid, SQLQuery und Status

Mal ins Blaue:
Bei der Transaction ist bei Action caRollback
und Active ist False.
gladio
 
Beiträge: 37
Registriert: 21. Jun 2014, 05:15
OS, Lazarus, FPC: Win7/10-32/64 | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon kralle » 16. Jul 2017, 07:34 Re: Firebrid, SQLQuery und Status

Moin,

gladio hat geschrieben:Mal ins Blaue:
Bei der Transaction ist bei Action caRollback

Ja. Auf was sollte Action denn stehen?
Denn egal welchen der Werte ich nehme, das Ergebnis bleibt gleich.

gladio hat geschrieben:und Active ist False.

Nein. Ist True.

Gruß HEiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon luckylynx » 17. Jul 2017, 16:32 Re: Firebrid, SQLQuery und Status

Hallo,
habe mir das Projekt mal angesehen. Leider ist die Testdatenbank nicht geeignet. Was genu die Problematik ist, habe ich nicht geprüft. Mit der angefügten DB ( eine Tabelle und ein paar Datensätze) und dem geänderten Programm funzt aber alles.
Beliebige Änderungen in dem Grid kann man mit den Button 'speichern' in die DB übernehmen.
Im Programm muss der DB Name noch eingefügt werden oder in den Eigenschaften von IBConnection1.
Der Navigator hat jetzt keine Funktion.
Ich denke zum Probieren reicht das erst einmal.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
luckylynx
 
Beiträge: 2
Registriert: 25. Dez 2016, 13:07

Beitragvon kralle » 17. Jul 2017, 17:22 Re: Firebrid, SQLQuery und Status

Moin,

luckylynx hat geschrieben:Ich denke zum Probieren reicht das erst einmal.

Dein Projekt, kann Deine "test.fdb" nicht öffnen weil Username (SYSDABA) und Passwort (masterkey) nicht stimmen.
Auch mit FlameRobin lässt sich Deine Datenbank nicht öffnen.

Gruß Heiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon luckylynx » 17. Jul 2017, 17:42 Re: Firebrid, SQLQuery und Status

Bei mir läufts.
lege doch mit Flamerobin eine DB an.

CREATE TABLE ZUGRIFF
( AUFTRAG Integer,
REF Varchar(3),
DATUM Date,
KURZ Varchar(3));

GRANT INSERT, SELECT, UPDATE
ON ZUGRIFF TO "PUBLIC";

GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
ON ZUGRIFF TO SYSDBA WITH GRANT OPTION;

Dann sollte es laufen, sonst melde dich
luckylynx
 
Beiträge: 2
Registriert: 25. Dez 2016, 13:07

Beitragvon kralle » 17. Jul 2017, 18:08 Re: Firebrid, SQLQuery und Status

Moin,
luckylynx hat geschrieben:Dann sollte es laufen, sonst melde dich

Das tue ich dann mal ....

Egal wo ich die Datenbank erstellen will, ich habe FlameRobin, darf nirgendwo eine Datei erstellen.
Weder im Home, noch unter Dokumente, noch im Projektverzeichnis :evil:

Das darf doch alles nicht wahr sein.
Wie ich das hasse. Mal fehlen Zugriffsrechte ohne das bei der Installation darauf hingewiesen wird, dann fehlen irgendwelche Dateien.
Unter Win gerne mal eine .vbs-Datei. Ich will Software anwenden und nicht die Fehler der Programmierer beseitigen (da mache ich selber genug)

Gruß Heiko
Linux Mint 18.2 und Lazarus 1.9 (FPC-Version: 3.0.2)
Windows 8.1 Pro Lazarus 1.6 + Delphi XE7SP1
kralle
 
Beiträge: 449
Registriert: 17. Mär 2010, 14:50
Wohnort: Bremerhaven
OS, Lazarus, FPC: Linux Mint 18.2 - Lazarus 1.9 - FPC 3.0.2 -Win8.1 & XE7Pro | 
CPU-Target: 64Bit
Nach oben

Beitragvon mse » 17. Jul 2017, 19:25 Re: Firebrid, SQLQuery und Status

Die erlaubten Verzeichnisse für Datenbanken werden in der Firebird Konfigurationsdatei festgelegt. Wenn keine Einschränkungen gelten sollen, kann man in firebird.conf
Code: Alles auswählen
 
 DatabaseAccess = Full
 

angeben. Zudem muss der user "firebird" Schreib und Leserechte in den verwendeten Verzeichnissen haben. In deinem home- und untergeordneten Verzeichnissen hat "firebird" standardmässig bestimmt keine Schreibrechte.
mse
 
Beiträge: 1563
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Datenbanken



Wer ist online?

Mitglieder in diesem Forum: af0815 und 3 Gäste

porpoises-institution
accuracy-worried