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 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
Alt 14.03.2006, 07:38   #2
delphirocks
bitte Mailadresse prüfen!
 
Registriert seit: 17.03.2002
Beiträge: 198


Standard

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...
delphirocks 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 16:45 Uhr.


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