Die SQLite Sternen-Problematik

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Die SQLite Sternen-Problematik

Beitrag von PureBasic4.0 »

Hi, Leute

Folgende Problematik:

Ich benutze folgenden Code:

Code: Alles auswählen

                SqlString$ = "DELETE * FROM Profile WHERE 'Name' = '"+\Name+"'"
                SQLiteExecute(DBHandle,SqlString$,0)
                Debug SQLiteErrorMsg(DBHandle)
Die ErrorMsg() zeigt folgendes an:

Bild

near "*": syntax error

Im "normalen" SQL ist das ein ganz normaler Befehl.

Wie kann ich SQLite (ich benutze die SQLite.pbi) verklickern, dass diese alle Daten aus der Datenbank Profile löscht, die einen bestimmten Namen haben?
Zuletzt geändert von PureBasic4.0 am 25.05.2007 14:46, insgesamt 1-mal geändert.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQLite3 kann keinen *

Beitrag von Kiffi »

PureBasic4.0 hat geschrieben:Im "normalen" SQL ist das ein ganz normaler Befehl.
Nöh, isses nicht.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

DELETE * würde heißen alle Felder löschen aber es wird sowieso die ganze Zeile gelöscht d.h. der Stern ist zu viel.
Lass ihn weg dann wird es gehen
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

hab ich schon. ohne stern macht sqlite überhaupt nichts
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: SQLite3 kann keinen *

Beitrag von DarkDragon »

Kiffi hat geschrieben:
PureBasic4.0 hat geschrieben:Im "normalen" SQL ist das ein ganz normaler Befehl.
Nöh, isses nicht.

Grüße ... Kiffi
Stimmt, ein Befehl in dem Sinne ist es nicht, aber Wildcards gehören eindeutig zur SQL.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Probier mal das:

Code: Alles auswählen

SqlString$ = "DELETE FROM Profile WHERE Name = '"+Name$+"';"
SQLiteExecute(DBHandle,SqlString$,0)
Debug SQLiteErrorMsg(DBHandle)
'\Name' scheint mir keine gültige Stringvariable zu sein.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: SQLite3 kann keinen *

Beitrag von Kiffi »

DarkDragon hat geschrieben:Stimmt, ein Befehl in dem Sinne ist es nicht, aber Wildcards gehören eindeutig zur SQL.
PureBasic4.0 behauptete, dass 'Delete * ...' eine ganz normale
SQL-Anweisung sei. Und dem habe ich lediglich widersprochen.

@PureBasic4.0: Kannst Du bitte den Betreff ändern?

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Thorsten1867 hat geschrieben: '\Name' scheint mir keine gültige Stringvariable zu sein.
@Thorsten1867: Ist es aber! Steht in einer LinkedList und einer Struktur drin. \Name ist richtig und korrekt befüllt.

@Kiffi: Titel so besser?

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

PureBasic4.0 hat geschrieben:@Kiffi: Titel so besser?

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
na, so witzig finde ich das gar nicht. Generell geht's ja nicht um einen Bug in
SQLite bzw. der SQLite.pb, sondern darum, dass Du nicht in der Lage bist, ein
Delete-Statement an eine Datenbank zu senden.

Wie auch in diesem Thread vermute ich, dass der Bug vor der Tastatur sitzt. :mrgreen:

Aus diesem Grund wäre es von Vorteil, wenn Du einen kurzen Code hier
postest, anhand dessen man den Fehler nachvollziehen kann.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Kiffi hat geschrieben: Wie auch in diesem Thread vermute ich, dass der Bug vor der Tastatur sitzt. :mrgreen:
@all: Der Bug saß vor der Tastatur!
Wie auch in meinem ersten Posting erwähnt, habe ich diesen Code benutzt

Code: Alles auswählen

                SqlString$ = "DELETE * FROM Profile WHERE 'Name' = '"+\Name+"'"
                SQLiteExecute(DBHandle,SqlString$,0)
                Debug SQLiteErrorMsg(DBHandle)
Habe dann den Stern weggelassen. Hat aber auch nicht funktioniert, weil es keine Datenbank Namens 'Name' gibt. Die Datenbank heißt Name ohne Hochkommata.

Trotzdem Danke für eure Bemühungen. Der Code funktioniert jetzt
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten