?
Ok dann versuch ich noch tiefer rein zu gehen. 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. Ich habe es auch unter anderem mit Opendatabase probiert aber da bin ich auch gescheitert und einen funktionierende Befehl um die Werte dann in die Datenbank zu schreiben hab ich auch nicht gefunden.Welchen befehl brauche ich da, und wie ist da die genaue Syntax. Nochmal zur Erklärung: Der Windows Rechner kann auf mein Linux Rechner zugreifen. Die Datenbank wurde mit MySQL (MyphpAdmin) geschrieben. Unter der Command window kann mein Kollege auf meine Datenbank zugreifen. Nun haben wir das Problem beim Werteübertragung auf mein Linuxrechner. Der unten stehende Code ist der Code wo die Werte vom einen 12 BIT ADC LABJACK auf den Windows Rechner eingelesen wird.
#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,"EAnalogIn"); //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]);
}