Zum Inhalt springen

sql abfrage mit einem string?


jesusjones

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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...