WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 10.03.2006, 16:45   #1
Balthazor
Newbie
 
Registriert seit: 10.03.2006
Beiträge: 2


Standard Zugriff von C-Programm auf Mysql Datenbank

Hallo!

Ich habe ein Programm das auf eine Datenbank zugreifen soll. Soweit so gut das C-Programm (Borland) ist funktionstüchtig
und die Datenbank auf einem zweiten Rechner(Linux) auch nur die Verbindung dieser 2 funktioniert nicht.

#include <conio.h>
#include <stdio.h>
#include <wtypes.h>
#include <sql.h>
#include <DBLogDlg.hpp>
#include <vcl.h>
#pragma hdrstop


#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;





//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;

SQLResult pConnection ->connect ( proj1, root, 2582124) = 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;



}

Unteranderen habe ich das ganze auch mit opendatabase probiert.
Fazit nichts was ich daweil Probiert habe hat funktioniert.

Ich hoffe ihr könnt mir helfen.
Balthazor ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:59 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag