![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 10.03.2006
Beiträge: 2
|
![]() Hallo ich hab ein Problem mit der Verbindung zwischen einem C-Programm(Borland) und einer mySQl-Datenbank auf einem anderen Rechner(Linux). Hier steht der Code den ich verwende.Nur die Befehle zum Öffnen der Verbindung zwischen C-Programm und Datenbank sind nicht wirklich jene die zum Erfolg führen. Ihc ahbe es auch unter anderem mit Opendatabase probiert aber da bin ich auch gescheitert udn einen funktionierende Befehl um die Werte dann in die Datenbank zu schreiben ahb ich auch nicht gefunden.Welchen befehl brauche ich da, und wie ist da die genaue Syntax.Ich hoffe ihr könnt mir helfen.
#include <conio.h> #include <stdio.h> #include <wtypes.h> #include <sql.h> #include <DBLogDlg.hpp> //#include <iostream.h> //include <dbconnect.h>//"C:\Dokumente und Einstellungen\Balthazor\Desktop\Borland\CBuilder6\ Include\dbconnect.h" //#include "C:\Dokumente und Einstellungen\Balthazor\Desktop\mysql++1_7_1win32_ borland_1_1\mysql\include\mysql\mysql.h" //Zuerst werden die Strukturen definiert, die das selbe Format haben, //wie die Funktionen des Prototypens typedef long (CALLBACK *EAnalogIn)(long*, long,long,long,long*,float*); //EAnalogIn: Liest die Spannung von einem analogen Eingang ein. typedef long (CALLBACK *AISample)(long*,long,long*,long, long,long,long*,long*,long,long*,float*); // AISample: Liest die Spannungen von 1, 2oder 4 analogen Eingangen. int main() { typedef INT32 SQLResult; //SQLConnect('localhost','root'); SQLResult pConnection ->connect ( proj1, root, PW) = 0; for(;; ) //Leerlaufschleife { //Definition der Variable um die DLL-Datei zu laden HINSTANCE hDLLInstance; //Definition der Variablen die später verwendet werden EAnalogIn m_pEAnalogIn; AISample m_pAISample; //Nun wird versucht die DLL-Datei zu laden if (hDLLInstance = LoadLibrary("ljackuw.dll")) { //Bei erfolgreichen Laden werden folgen Funktionen durchgeführt m_pEAnalogIn = (EAnalogIn)::GetProcAddress(hDLLInstance,"EAnalogI n"); //Pointer der Funktion EAnalogIn m_pAISample = (AISample)::GetProcAddress(hDLLInstance,"AISample" ); //Pointer der Funktion AISample } else //Falls der Treiber nicht installiert wurde kommt folgende Fehlermeldung { printf("\nFailed to load DLL\n"); getchar(); return 0; } /*m_pEAnalogIn hält einen Pointer zu der m_pEAnalogIn Funktion. Der Compiler erkennt automatisch m_pEAnalogIn als Pointer einer Funktion und ruft die Funktion mit den Parametern auf. Wenn wir eine neue Variable vom Typ tEAnalogIn erstellen und geben "pNewVar = m_pEAnalogIn" ein, so kann der Compiler die Funktion nicht aufrufen, da er diese nicht erkennt. */ long errorcode; //Ein LabJack spezifischer Error-Code, 0 bedeutet kein Fehler 2 bedeutet, // dass keine LabJAck-Einheit angeschlossen ist. long idnum=-1; //idnum = Local ID, Serien Nummer, oder -1 für das Gerät, //das als erstes gefunden wird. long stateIO=0; //stateIO= Ausgang für IO0-IO3.Hat aber keine Auswirkung, //falls IO als Eingang konfiguriert wird, da eine andere Funktion verwendet werden //muss, die den Ausgang defeniert. long numCh=4; //numChannels = Anzahl der analogen Eingängen die zu lesen sind(1,2,3 oder 4). long channels[4]; // channels = Pointer zeigt auf ein Array von einem Kanal mit //dem niedrigensten numchannel Element.Jeder Kanal kann einfach oder differentiel verwendet werden. // 0-7 für einfach und 8-11 für differentiel. long gains[4]={0,0}; //gains= Pointer zeigt auf ein Array von einem Kanal //mit dem niedrigensten numChannel Element. Gain-Befahle sind 0=1, 1=2, ... , 7=20. //Diese Applikation ist nur für differentielle Anwendungen verfügbar long ov=0; //ov=overVoltage = Wenn >0, wurde eine Überspannung an einem der Eingängen entdeckt. float voltages[4]={0}; //voltages = Pointer zu dem Array, das die eingelesenen Spannung zurückgibt. //Lesen der 8 analogen Eingängen mittels AISample channels[0]=0; channels[1]=1; channels[2]=2; channels[3]=3; errorcode = m_pAISample(&idnum,0,&stateIO,0,1,4,channels,gains ,0,&ov,voltages); printf("\nAISample error = %d\n",errorcode); // mysql_query("insert into 'emg_ua'('zahl','age','startzeit','werte','endzeit ')Values(5,44,328432843,rand()%100,3242131234123)" ); printf("AI0 = %2.2f V\n",voltages[0]); printf("AI1 = %2.2f V\n",voltages[1]); printf("AI2 = %2.2f V\n",voltages[2]); printf("AI3 = %2.2f V\n",voltages[3]); } getchar(); return 0; SQLResult Status pConnection ->disconnect()=0; } |
![]() |
![]() |
![]() |
#2 |
bitte Mailadresse prüfen!
Registriert seit: 17.03.2002
Beiträge: 198
|
![]() Hier ist die C-API beschrieben...
http://dev.mysql.com/doc/refman/5.0/...l-connect.html Sonst könntest du ja auch noch im mysql.h File nachsehen. Mit "probieren" kommst du wahrscheinlich nicht weit... ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|