Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

#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?

Geschrieben
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?
Geschrieben

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:

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...