getreidemuehlen
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 27.09.2004, 19:20   #1
TP-Member
 
Benutzerbild von cemo999
 
Registriert seit: Aug 2004
Ort: Österreich
cemo999 macht alles soweit korrekt

MSSQL & C++


Also ich hab das Problem, dass ich mit c++ noch nie auf eine Datenbank zugegriffen hab, dies aber in meinem fall muss!

Es geht darum, werte die über rs232 eingelesen wurden in die datenbank zu schreiben.

Für das Einlesen von der RS232 habe ich ein Konsolenanwendung erzeugt!
Hier wäre der CODE:

Zitat:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <windows.h>

using namespace std;

int _tmain()
{
HANDLE hCom;
OVERLAPPED ol;
DWORD byteswritten;
char ctrl[1],buffer[3],id[64],idold[64];
int i=0,j=0,count=0,end=0,res=0,s=0,len=0;
COMMTIMEOUTS commTimeouts = {0};

memset(&commTimeouts, 0, sizeof(commTimeouts));

commTimeouts.ReadIntervalTimeout = MAXDWORD;
commTimeouts.ReadTotalTimeoutConstant = MAXDWORD;
commTimeouts.WriteTotalTimeoutConstant = 0;
commTimeouts.ReadTotalTimeoutMultiplier = 10;
commTimeouts.WriteTotalTimeoutMultiplier = 0;

hCom = CreateFile ( "COM1",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
0 );

if (hCom == INVALID_HANDLE_VALUE) {
printf ("Fehler beim Zugriff auf COM1...");

return 2;
}

SetCommTimeouts(hCom, &commTimeouts);

// Schnittstelle initialisieren
DCB dcb;
GetCommState (hCom, &dcb);
BuildCommDCB ("baud=9600 parity=n data=8 stop=2", &dcb);
SetCommState (hCom, &dcb);

byteswritten = 0;
memset(&ol,0,sizeof(OVERLAPPED));
memset(id,0,64);
memset(idold,0,64);
memset(ctrl,0,1);
memset(buffer,0,10);

do
{
ReadFile (hCom, ctrl, 1, &byteswritten, &ol);
i = ctrl[0];
i &= 0xFF;

if(i == 0xfc)
{
end = 0;
count = 1;
res = 0;
j = i;
memset(id,0,64);
}
else if(count >= 1 && i != 0xff)
{
count++;
j = i;

if(j == 0xfd)
{
ReadFile (hCom, ctrl, 1, &byteswritten, &ol);
j = ctrl[0];
j &= 0xFF;
j += 0x80;
}
}
else if(i == 0xff && count == 17)
{
j = i;
count++;
end = 1;
}
else
{
cout<<"Lesefehler\n";
count = 0;
res = 0;
end = 0;
}

if(count >= 1)
{
itoa (j,buffer,10);
if(count > 1)
{
id[res] = '.';
res++;
}

s=strlen(buffer);
for(len=1;len<=s;len++)
{
id[res] = buffer[len-1];
res++;
memset(ctrl,0,1);
}
}
if(count == 18 && end == 1 && strcmp(id,idold))
{
memset(idold,0,64);
strcpy(idold,id);
cout<<id<<"\n";

//Hier sollte in die MSSQL-Datenbank geschrieben werden

count = 0;
res = 0;
}
}
while(1);

CloseHandle (hCom);

return 0;
}
Für ein paar codesamples zum verbinden und schreiben in die datenbank wäre ich sehr dankbar!!
__________________
Lebe jeden Tag als ob es dein letzter wäre...
-
...es könnte dein letzter sein!
cemo999 ist offline   Mit Zitat antworten


Alt 27.09.2004, 19:32   #2
TP-Supporter
 
Benutzerbild von CB.NET
 
Registriert seit: Jun 2003
Ort: Fürth
CB.NET macht sich hier sehr viel Mühe
hallo,

möchtest du per ADO oder ODBC auf den SQL-Server zugreifen, wobei hier ADO mehr Möglichkeiten bietet , auch was die Geschw. angeht ?

hier sind erst einmal die GRundlaGEN

http://download.pearsoned.de/leseeck...data/start.htm

ist aber eher für MFC-Programmierung

allerdings ist für ADO etwas Zeit erforderlich

nebenbei ist auch noch wichtig, ob du mit MS C++ oder mit BCC auf die db zugreifen möchtest
__________________
Die perfekte Web-Applikation ist: sicher,skalierbar,schnell, anwenderfreundlich,intuitiv, wiederverwendbar,flexibel,transparent,umfassend,dynamisch, zuverlässig,einfach,modular,effizient, stabil,handhabbar,verteilt,robust, persistent,kollaborativ,mächtig,intelligent,leicht verwendbar,portierbar,erweiterbar,
fehlerfrei, und zu guter Letzt billig

Geändert von CB.NET (27.09.2004 um 19:34 Uhr).
CB.NET ist offline   Mit Zitat antworten
Alt 27.09.2004, 19:49   #3
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Zitat:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <windows.h>
Und das nennst du C++.
Aber egal, warum hast du keine Lib eingebunden, die für MSSQL? Ohne geht ja nicht.
Strogij ist offline   Mit Zitat antworten
Alt 28.09.2004, 09:51   #4
TP-Member
 
Benutzerbild von cemo999
 
Registriert seit: Aug 2004
Ort: Österreich
cemo999 macht alles soweit korrekt
Ich muss über den ODBC Treiber auf die Datenbank zugreifen!!

Das Programm das ich verwende ist MS-Visual C++ 2003
Außerdem weiß ich nicht welche Lib ich für mssql verwenden muss!!

wenn mir jemand vielleicht ein kleines code-sample posten kann wäre mir sehr geholfen!!!

danke!!
__________________
Lebe jeden Tag als ob es dein letzter wäre...
-
...es könnte dein letzter sein!
cemo999 ist offline   Mit Zitat antworten
Alt 28.09.2004, 12:53   #5
TP-Supporter
 
Benutzerbild von CB.NET
 
Registriert seit: Jun 2003
Ort: Fürth
CB.NET macht sich hier sehr viel Mühe
als erstes eine ODBC-Verbindung anlegen in win
den dort angelegten Namen gibst du im CDatabase-Object mit an...

Code:
CDatabase db;
db->OpenEx("DSN=Datenquellenname;UID=Username;PWD=Passwort");
//nun ein Recordset Objekt
CRecordset rs(&db); //Datenbank übergeben
//jetzt kannst du ganz einfach nur mit der db
db->ExecuteSQL(SQL); //machen
//oder mit dem Recordset Objekt
rs->Open(CRecordset::forwardOnly,Select);
//Sql ausführen
das ist für ganz normales c++, ohne NET

P.S.
noch ein schicker Link zum Stöbern
http://www.mindcracker.com/mindcrack...e/database.asp
__________________
Die perfekte Web-Applikation ist: sicher,skalierbar,schnell, anwenderfreundlich,intuitiv, wiederverwendbar,flexibel,transparent,umfassend,dynamisch, zuverlässig,einfach,modular,effizient, stabil,handhabbar,verteilt,robust, persistent,kollaborativ,mächtig,intelligent,leicht verwendbar,portierbar,erweiterbar,
fehlerfrei, und zu guter Letzt billig

Geändert von CB.NET (28.09.2004 um 12:59 Uhr).
CB.NET ist offline   Mit Zitat antworten
Alt 28.09.2004, 16:31   #6
TP-Member
 
Benutzerbild von cemo999
 
Registriert seit: Aug 2004
Ort: Österreich
cemo999 macht alles soweit korrekt
error C2065: 'CDatabase': nichtdeklarierter Bezeichner

fehlt mir da vielleicht eine headerdatei???
(Es handelt sich um eine Konsolenanwendung!! (cmd))
__________________
Lebe jeden Tag als ob es dein letzter wäre...
-
...es könnte dein letzter sein!
cemo999 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
MSSQL & C++ MSSQL & C++
« odbc_num_rows umgehen? | Datenbanken exportieren unter Xampp »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MSSQL & ?? & RS232 cemo999 Traum-Dynamik 7 10.09.2004 13:49
Mit PHP auf MSSQL zugreifen Navacho Traum-Dynamik 4 26.11.2002 17:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:23 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67