jesusjones Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 guten morgen, kann ich in eine sql abfrage einen string einbauen? hier mal der entsprechende code //----------------Starten einer Abfrage mit dem letzten Datensatz, gespeichert in last------------------- if(0!=mysql_query(walditest,"SELECT * FROM walditest WHERE datum >= last")) { printf("Problem with the query\n"); } hierbei spreche ich mysql über die c-api an. danke für eure vorschläge, und noch nen schönen tag. hold on, bald ist we!!!:marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 Also, es geht normalerweise schon, aber bei mir mußten die SQL Anweisungen bisher immer ein Wide Character String sein, aber das könnte von API zu API verschieden sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 21. November 2002 Autor Teilen Geschrieben 21. November 2002 Wide Character String sein was ist das? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 was ist das? Ein Wide Character ist im gegensatz zum "normalen" char 2 Byte groß und vereinfachen das Programmieren mit internationalen Zeichensätzen. Mit der Funktion MultiByteToWideChar() wandelst du einen char in einen wchar um und mit WideCharToMultiByte() umgekehrt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 21. November 2002 Autor Teilen Geschrieben 21. November 2002 und welchen header binde ich dafür ein? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 Hier ist ne genaue Erklärung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 21. November 2002 Autor Teilen Geschrieben 21. November 2002 erwähnte ich das es auf einer unix maschine läuft? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 nein, dann kannst du das nicht benutzen. Was willst du denn genau machen und wo kommst du nicht weiter? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 21. November 2002 Autor Teilen Geschrieben 21. November 2002 #include<string.h> #include<stdio.h> #include"mysql.h" int main () { MYSQL *walditest; MYSQL_RES *reswaldi; MYSQL *waldi_in; MYSQL_RES *reswaldi_in; MYSQL_ROW waldi_in_row; MYSQL_FIELD *field; my_ulonglong anz_zeilen; char abfrage[100],temp[100]; const char abfrage_template[] = "SELECT * FROM data2 WHERE datum > %s"; unsigned int i; //--------------------------------Verbinden mit walditest------------------------------------------ walditest = mysql_init(0); walditest = mysql_real_connect(walditest,"the-air","scott","tiger","walditest",0,0,0); if(walditest==0) { printf("Problem mit der Verbindung zu Walditest\n"); } if(0!=mysql_query(walditest,"SELECT datum,wert FROM data2")) { printf("Problem with the query(walditest)\n"); } //--------------------------------Verbinden mit waldi_in-------------------------------------------- waldi_in = mysql_init(0); waldi_in = mysql_real_connect(waldi_in,"the-air","scott","tiger","waldi_in",0,0,0); if(waldi_in==0) { printf("Problem mit der Verbindung zu Waldi_in\n"); } //---------------------------------Auswählen aller Datensätz in waldi_in----------------------------- if(0!=mysql_query(waldi_in,"SELECT datum,wert FROM data")) { printf("Problem with the query(waldi_in)\n"); } reswaldi_in = mysql_store_result(waldi_in); //------------Anzahl Zeilen Ergebnismenge auslesen und zum letzten Datensatz gehen-------------------- anz_zeilen = mysql_num_rows(reswaldi_in); //anzahl zeilen ergebnismenge printf ("Anzahl Zeilen: %lu\n", (unsigned long) mysql_num_rows(reswaldi_in)); //ausgabe anzahl zeilen mysql_data_seek(reswaldi_in,anz_zeilen-1); //zum letzten tupel springen waldi_in_row=mysql_fetch_row(reswaldi_in); //daten auslesen //printf("%s %s\n",waldi_in_row[0],waldi_in_row[1]); //daten ausgeben //strcpy(last,waldi_in_row[0]); //speichern des letzten datums im string last //printf("%s\n",last); //----------------Starten einer Abfrage mit dem letzten Datensatz, gespeichert in last------------------- snprintf(abfrage, sizeof abfrage, abfrage_template, waldi_in_row[0]); abfrage[sizeof abfrage-1]=0; printf("%s\n",abfrage); if(0!=mysql_query(walditest, abfrage)) { printf("Problem with the query 2\n"); } mysql_close(waldi_in); mysql_close(walditest); } hier der ganze code. problem ist: die letze abfrage funktioniert nicht. aufgabenstellung: in die quelldatenbank werden unregelmäßig daten geschrieben. mein progi wird regelmäßig aufgerufen, erkennt neue einträge und schreibt diese in die zieldatenbank. deshalb auch die datumsüberprüfung (alle einträge die neuer sind als der letzte der zieldb sollen kopiert werden). und bei dieser abfrage hakelt es schon. soweit der erste teil. hab ichs einigermaßen verständlich ausgedrückt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 hab ichs einigermaßen verständlich ausgedrückt? Ja, aber ich dachte es geht allgemein um SQL Befehle in C, mit MySQL hab ich noch nie was gemacht, kann dir da also nicht weiterhelfen. Am besten wartest du mal bis Klotzkopp wieder im Forum ist, der kann dir bestimmt helfen. Gruß Guybrush Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 21. November 2002 Autor Teilen Geschrieben 21. November 2002 danke für den versuch!!!!:uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 21. November 2002 Teilen Geschrieben 21. November 2002 Ich nehme mal an, MYSQL_ROW ist ein #define oder typedef. Was für eins? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 22. November 2002 Autor Teilen Geschrieben 22. November 2002 kann ich pro verbindungsid ( die ich ja bei mysql_connect bekomme) nur eine abfrage starten? d.h möchte ich auf eine db zwei abfragen starten baue ich eine zweite verbindung auf? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 22. November 2002 Teilen Geschrieben 22. November 2002 Originally posted by jesusjones kann ich pro verbindungsid ( die ich ja bei mysql_connect bekomme) nur eine abfrage starten?Würde mich wundern, wenn das so wäre. Ist das jetzt ein neues Problem? Hat sich das alte erledigt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jesusjones Geschrieben 22. November 2002 Autor Teilen Geschrieben 22. November 2002 ja, ich denke. der fehler war folgender: ich hätte die db nach der ersten anfrage mit mysql_free_result(MYSQL_RES) freigeben müssen. andere frage: kann ich in einer select anweisung schon irgendwas formatieren? z.b select datum from data where datum >= 200202021546 der typ von data ist datetime, also kommts in der form in die ergebnismenge: 2002-02-02 15:45:49 kann ich das so formatieren das es in der from kommt 20020202154649 puh, ich will wochenende haben!!!!:eek: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.