AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DSQLite - Insert

Ein Thema von aurikel_Max · begonnen am 13. Mär 2010 · letzter Beitrag vom 13. Mär 2010
Antwort Antwort
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#1

DSQLite - Insert

  Alt 13. Mär 2010, 18:33
Datenbank: SQLite • Version: 3.6.22 • Zugriff über: DSQLite3 Personal
Hey,

nachdem ich das mit dem 'Select'-"Sachen" jetzt hinbekommen habe, möchte ich etwas in meine Datenbank schreiben, allerdings durchschau ich nicht wirklich, wie das bei DSQLite3 geht.

Ich hab verschiedene Ansätze ausprobiert und da ich noch am Anfang steh, seh ich eher so also so aus .

Also es geht darum, dass ich in einer Prozedur ein TDISQLite3UniDirQuery erstelle, darüber greif ich zuerst auf eine Datenbank zu und möchte später wieder mehrere Werte speichern.

Meine Ansätze waren folgende:

Delphi-Quellcode:
sql.InsertSQL :=
      'INSERT INTO tabelle2(wert1,wert2,wert3) VALUES (' + #39 +
      (sql.FieldByName('wert1').AsString)
      + #39 + ', ' + #39 + wert2 + #39 + ', ' + #39 + wert3 +
      #39 + ');';
sql.Insert;
sql.Next;
(die verschiedenen Sachen heißen anders, die Namen sollen nur zur Verdeutlichung dienen)

Dabei bekomme ich bei "sql.Next" die folgende Fehlermeldung (die auch auftritt, wenn da ein anderer Befehl wie sql.Close steht)
Zitat:
Cannot modify a read-only dataset.
Das kann ich mir eigentlich nicht erklären, da weder die TDISQLite3UniDirQuery noch die Komponente, über die der Zugriff auf die Datenbank (TDISQLite3Database), eine read-only Eigenschaft besitzen. (im Admintool hab ich (bewusst) auch nichts dergleichen eingetragen)


Mein nächster Ansatz war, dass ich die TDISQLite3Database-Komponente benutze, die ich für den Zugriff auf die Datenbank sowieso benutze. Mein Ansatz sah so aus:

Delphi-Quellcode:
DISQlite3Database.Execute('INSERT INTO tabelle2(wert1,wert2,wert3) VALUES (' + #39 +
      (sql.FieldByName('wert1').AsString)
      + #39 + ', ' + #39 + wert2 + #39 + ', ' + #39 + wert3 +
      #39 + ');');
Dabei tritt die folgende Fehlermeldung auf:
Zitat:
SQLite3 Error 5 - database is locked.
Das kann ich mir auch nicht erklären, da ich nichts dergleichen veranlasst habe.


Ich hoffe, ihr könnt etwas mit meiner Beschreibung anfangen

Ich danke euch jedenfalls

Liebe Grüße.
Max
  Mit Zitat antworten Zitat
ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: DSQLite - Insert

  Alt 13. Mär 2010, 22:50
DISQLite3db.Execute16('INSERT INTO ' + tblName + ' VALUES (NULL,"' + Wert + '","' + WERT + '", "")'); Schau dir die Demos von Disqlite an. Da ist alles dabei.
Disqlite bietet mehrere Möglichkeiten Transaktionen auszuführen.
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#3

Re: DSQLite - Insert

  Alt 13. Mär 2010, 23:42
Zitat von ryLIX:
DISQLite3db.Execute16('INSERT INTO ' + tblName + ' VALUES (NULL,"' + Wert + '","' + WERT + '", "")'); Schau dir die Demos von Disqlite an. Da ist alles dabei.
Disqlite bietet mehrere Möglichkeiten Transaktionen auszuführen.
Um mal die Demo-Dateien außer Acht zu lassen (die schau ich mir morgen nochmal genau an, das hatte ich zwar in den letzten Tagen schonmal gemacht, allerdings nicht mit dem erhofften Ergebnis), ist das was du oben schreibst, nicht das gleiche, wie ich es ausführe (nur mit Execute16), wobei auch hier ja auch der Fehler mit "locked database" auftritt (hab es mit Execute16 ausprobiert) und ich nicht weiß, woran das liegt. (oder vertue ich mich da jetzt)
Danke für Deinen Beitrag, die Demo-Dateien schau ich mir morgen nochmal an (wie gesagt) und dann editier ich diesen Post oder schreib einen neuen.

Gute nacht.

Edit: Klappt mittlerweile alles, mein "Fehler" bestand darin, dass ich nicht wusste, dass mein ClientDataSet die Datenbankkomponente, obwohl ich sie kurz zuvor disconnecten ließ, erneut connecten ließ.
Max
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz