SQL String, Abfrage auf DB
-
@ estartu_de: Stimmt.
Tommy005 schrieb:
In der Spalte "Zahl" steht eine nummer.
Ich war so frei, "nummer" als Zahlenwert zu interpretieren. "nummer" als Text habe ich mal ausgeschlossen.
Die Fehlermeldung weist aber auch unauffälligdarauf hin, dass die Datentypen nicht passen:
"Datentypen in Kriterienausdruck unverträglich."
Also vermute ich mal, dass es kein String ist...
P.S.:
nicht NOT IS NULL sondern IS NOT NULL, oder ?
-
Ich hab doch gesagt, dass du %s nehmen sollst, wenn nummer ein string ist...
Außerdem würde ich noch Klammern setzen:sqlString.Format(_T("SELECT Zahl ,Text ,Textt FROM Tabelle1 WHERE Zahl = \'%s\' AND ((Text IS NOT NULL) OR (Textt IS NOT NULL))"), nummer);
Ansonsten hilft nur ruhig bleiben. *kopftätschel*
-
isabeau schrieb:
P.S.:
nicht NOT IS NULL sondern IS NOT NULL, oder ?*schäm*
DAS ist mein Standardfehler...
-
Okay !!
Sorry ich bin leicht gestresst!! Naja ich muss jetzt weg *leider*! trotzdem vielen Dank für euere Hilfe! Werde mich gleich morgen früh nochmal dran versuchen
!!Des muss doch zu schaffen sein
!
Also wünsch euch noch einen schönen Tag !! bis morgen vielleicht
und nochmal Danke!
Gruß Tommy
-
Juten Morgen,
also ich sitze jetzt schon seit 2 Stunden drann aber ich komme nie in meine If-Anweisung rein
CString sqlString,d; sqlString.Format(_T("SELECT Zahl,Text ,Textt FROM Tabelle1 WHERE Zahl = \'%s\'AND ((Text IS NOT NULL) OR (Textt IS NOT NULL))"), nummer); m_pRS->Open(dbOpenDynaset,sqlString); //habe es auch schon mit dbOpentable & dbObenSnapshot probiert AfxMessageBox("Nach dem öffnen"); if( m_pRS->IsEOF( ) ) { COleVariant a; CString c; AfxMessageBox("is in der if bedinung drinnen"); m_pRS->GetFieldValue("Text",a); a = c; AfxMessageBox(c); } }
hat jemadn eine Ahnung woran dass liegen könnte ??
meine Datenbank hat ja nur 1 Tabelle "Tabelle1" und 3 Spalten.
Spalte 1 "zahl" ----> Typ Text (da ich einen Cstring übergebe)
Spalte 2 "Text" ----> Typ Text (beinhaltet entwerder "ja" oder nichts)
Spalte 3 "Textt"----> Typ Text (beinhaltet entwerder "ja" oder nichts)
-
Deine if-Abfrage prüft ab, ob kein Datensatz vorhanden ist. Wenn keiner vorhanden ist, wird dieser in der if-Abfrage ausgelesen.
Richtig wäre abzuprüfen, ob nicht EndOfFile ist.
-
Okay aber daran liegt es nicht :-(! Mit
if( !m_pRS->IsEOF( ) )
geht er auch nicht rein! Also wird meine Abfrage wohl kein ergebnis liefern
-
muss es nicht heißen
if(!m_pRs->EndOfFile)
also ein "!"
-
Also, das ist unlogisch!
Wenn der in eine if nicht reingeht und du nichts veränderst, außer, dass du die Bedingung negierst - dann muss der da rein.
Jetzt hast du zwei Möglichkeiten:
Fröhliches Weiterraten, bis du irgendwann entweder alles in den Müll schmeißt oder den Fehler hast.
Oder du machst es nochmal, und zwar so, wie es mit CRecordset normalerweise gemacht wird.Du erstellst die Klasse mit dem Assi, der ordnet die Tabelle mit den Spalten und ihren Typen zu und du arbeitest mit m_strWhere als Bedingung.
Wenn es dann nicht geht, bin ich mir jedenfalls sicher, dass es nicht an einer seltsamen Klassenkonstruktion liegt.
-
Okay ich weiss nicht warum aber es geht jetzt ich komme mit
if( m_pRS->IsEOF( ) )
rein und mit
if( !m_pRS->IsEOF( ) )
nicht rein!! Des heist ich muss schauen warum meine Abfrage leer ist !!
-
kannst mir ja dein projekt, wenn es nicht so groß ist, mal schicken
(hab grad eh nichts zu tun...)
-
Denkt aber an die Testdaten, ihr solltet auf den selben Testdaten probieren, sonst liegt es nachher daran!
-
kannst mir ja dein projekt, wenn es nicht so groß ist, mal schicken
(hab grad eh nichts zu tun... )welche Adresse??
-
aso
stgt_c ÄT yahoo.de
(DB nicht vergessen..)
(bin aber auch nur Anfänger...)
-
Denkt aber an die Testdaten, ihr solltet auf den selben Testdaten probieren, sonst liegt es nachher daran
yup, das stimmt
-
okay ich schick sie dir
(bin aber auch nur Anfänger... )
ist doch egal! Vielleciht findest du ja den Fehler
-
hast dus schon geschickt
-
soeben weggeschickt
-
hi
kann mir jemand sagen woran das liegt.
beim compilieren kommt
"Unrecogniced database format C:\usw."danke
-
Hast du den Pfad mit \\ geschrieben????
"C:\\VERZEICHNIS\\db2.mdb"