Einzelnen Beitrag anzeigen
Alt 13.03.2006, 10:30   #1
Balthazor
Newbie
 
Registriert seit: 10.03.2006
Beiträge: 2


Standard Connection zwischen Borland und MySQL-Datenbank

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;

}
Balthazor ist offline   Mit Zitat antworten