DATUM IN DB
-
Hi @ all !!!
Hab ein ziehmlich blödes Problem !!
In meinem Prog wird ein Datum eingegeben (als CString). Den String will ich in eine Access Db reinschiebendb.ExecuteSQL("INSERT INTO pruef (lfdatum) VALUES ("+m_lieferdatum+")");
Dies klappt leider nicht, da das Datumfeld Punkte enthält !! In der DB brauch aber das Feld als Datum.
Wie kann ich es realisieren ?????
Thx
Gruß
-
,Ich weiss nicht genau wie das Datum in einen SQL-String für Accses aufgebaut sein muss,aber so füge ich ein Datum in eine AccsesDb ein:
int y = atoi(m_Date.Left(4)); int m = atoi(m_Date.Mid(5,2)); int d = atoi(m_Date.Mid(8,2)); COleDateTime date(y,m,d,0,0,0); CDaoRecordset r(&db); r.Open(dbOpenTable,"pruef",dbAppendOnly); r.AddNew(); r.SetFieldValue("lfdatum",date); r.Update(); r.Close();
-
Ich kann es so nicht machen !!!
Benutze ODBC.Andere Vorschläge ????
-
Ich bin ziemlich sicher das vor und hinter das Datum # gehört,aber wie die reihenfolgen von Tag,Jahr und Monat ist und welches Trennzeichen verwendet wird weiss ich nicht.
-
Hallo !
Probier doch mal das hier aus:
db.ExecuteSQL("INSERT INTO pruef (lfdatum) VALUES ('"+m_lieferdatum+"')");
(bei Zahlen ohne ' ansonsten mit ')
Und wenn es nicht klappt:
was steht in m_lieferdatum ? Welches Format hat das Datum in diesem String ?Tschüss
-
meinst du im SQL String???
Wieso frisst er denn kein string, das Punkte enthält ??
-
Nein, ich meine ' vor und hinter dem String:
erst: db.ExecuteSQL("INSERT INTO pruef (lfdatum) VALUES (
dann: '
dann: "+m_lieferdatum+"
dann wieder: '
und den Rest: )");Die Punkte im Datum (in m_lieferdatum) sind soviel ich weiss schon OK.
-
Juchu,
Jetzt klappt es,
thx @ all !!!!
-
Zuerst mußt du die Datenbank an eine ODBC-Schnittstelle binden. Wenn du nun den Steuer-Elementen die Membervariablen zugewiesen hast (soll heißen deinen Textfeldern und so) kommt dein Problem zum tragen. C++ erstellt dir in der CRecordSet-Klasse automatisch eine Membervariable für den Datumstyp. Diese zeigt auf dein Feld aus deiner Datenbank. Dank MS *g* wird die der Hilfsklasse CTime zugeornet(Datumfeld). Und genau an dieser stelle liegt der Hase im Argen. Du must nun die Hilfklasse von CTime in COleDateTime ändern. Wenn du es nun nochmal probierst sollte es klappen. Weitere Info findest du in der Leseecke von www.mut.de im Buch Visual C++ unter Kapitel "Daten aus ODBC-Datenbanken aufrufen". Ist garnicht schwer.
Viel spaß
Ich höffe ich konnte dir helfen....