Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Postgresql und Windows 2000

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
20.03.2003, 17:11 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Weiß jemand, wie man PostgreSQL unter Windows 2000 ansprechen kann? Die Datenbank befindet sich auf einem anderen PC (Linux oder FreeBSD - kommt drauf an, wos funktioniert).

Danke im Voraus!!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.03.2003, 20:05 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Irgendwo auf der PostgreSQL-Seite gibts nen ODBC-Treiber, den benutz ich im Moment über einen CDatabase-typedef-Ersatz. Wenn das Programm fertig ist und schneller werden soll, wird ein Native-Zugriff drauf, aber damit hab ichs nicht eilig ;-)
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2003, 12:55 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Werd ich mal probieren! Hab mir auch die MySQL++ 1.7.1 for Microsoft Visual C++ 6.0 von MySQL angeschaut. Jetzt heißts: Qual der Wahl...

Danke&CU!!
mfg mike +
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.03.2003, 13:46 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Mit MySQL++ hab ich mich nie groß beschäftigt, lieber ein paar eigene Mini-Klassen geschrieben (je weniger Overhead, desto besser *g*):


C++:
#include <windows.h>
#include "mysql.h"

#include <string>

using namespace std;

//------------------------------------------------------------------------------

class MySqlConnection
{
private:
   MYSQL *m_myData;

public:
   MySqlConnection(string sDatabase, string sServer)
   {
      if(!(m_myData = mysql_init(0))) throw "MySQL init failed";
      if(!mysql_real_connect(m_myData, sServer.c_str(), NULL, NULL, sDatabase.c_str(), MYSQL_PORT, NULL, 0)) throw "MySQL connect failed";
   }

   ~MySqlConnection() { mysql_close(m_myData); }
   MYSQL* GetData() { return m_myData; }
};

//------------------------------------------------------------------------------

class MySqlResult
{
private:
   MYSQL_RES *m_myRes;
   MYSQL_ROW m_myRow;
   int m_iFieldCount;
public:
   MySqlResult(MYSQL_RES *res): m_myRes(res), m_iFieldCount(mysql_num_fields(m_myRes)) { }
   ~MySqlResult() { mysql_free_result(m_myRes); }
   bool Next() { return (m_myRow = mysql_fetch_row(m_myRes)); }
   int GetFieldCount() { return m_iFieldCount; }
   string GetField(int iFieldNo) { return m_myRow[iFieldNo]; }
   bool IsNull(int iFieldNo) { return (!m_myRow[iFieldNo]); }
};

//------------------------------------------------------------------------------

class MySqlCommand
{
private:
   MYSQL *m_myData;

public:
   MySqlCommand(MySqlConnection& Conn): m_myData(Conn.GetData()) { }

   MySqlResult ExecuteQuery(string sQuery)
   {
      if(mysql_query(m_myData, sQuery.c_str())) throw ((string)"MySQL: Error in SQL statement" + sQuery).c_str();
      return MySqlResult(mysql_store_result(m_myData));
   }

   unsigned long ExecuteNonQuery(string sCommand)
   {
      if(mysql_query(m_myData, sCommand.c_str())) throw ((string)"MySQL: Error in SQL statement" + sCommand).c_str();
      return mysql_affected_rows(m_myData);
   }
};



Funktioniert auch ganz nett ;-)
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
24.03.2003, 14:46 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Danke, das schaut schon mal ziemlich gut aus!!
Könntest du mir noch bei meiner Entscheidung helfen? Hab leider keine Erfahrung mit DBs (außer einwenig Access). Welche DB würdest du empfehlen?
Es sind ca. 20 User gleichzeitig online und machen ca. 50 Einträge/User am Tag.

Danke nochmals!
mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
24.03.2003, 17:04 Uhr
mike
Pinguinhüpfer
(Operator)


OK. Die Frage war ziemlich doof. Hab mir Vergleichstest angeschaut und für 20 User und 50 Einträge / User reicht sogar eine 0815 Datenbank.
Fazit: Problem gelöst
Werd mich mal mit mysql spielen!!
Danke!!

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
24.03.2003, 19:48 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Zu spät wieder an den Rechner gegangen *g* Trotzdem ne kleine Antwort:

Also, wenn Du unter Linux UND Windows entwickeln willst, eindeutig MySQL! Das API ist extrem einfach, die DB selbst ist schön schnell und braucht (relativ) wenig Ressourcen. Von Interbase und Firebird würde ich für einfachere Projekte die Finger lassen, deren APIs sind grausam. Bestenfalls per ODBC...
Dann gibts noch SAP DB, auch Open Source und schön schnell, aber die Administration und Wartung ist verhältnismäßig kompliziert. Und PostgreSQL ist unter Windows noch ziemlich instabil, also nur Linux, und ansprechen würde ich das nur über die ODBC.

Also für mich ist MySQL mit Abstand das beste System, auch wenn es im Verkauf nicht kostenlos ist...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
26.03.2003, 20:19 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Danke für deine Antwort!

mfg mike
PS: Bin endlich online Yepeee. FreeBSD rulez
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.04.2003, 20:48 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Sorry, dass ich die alten Threads noch mal aufrolle. Hab mir jetzt MySQL gesaugt. Möchte es mal mit deiner Variante probieren und wollte fragen, ob du vielleicht ganz zufällig ein paar Samples für mich hättest ?

Und eine kleine Frage noch: gibts da einen Unterschied, ob mysql auf Win oder BSD läuft?? (bezogen auf die Client Appi die sowieso immer unter Win läuft)

Wäre ganz supa!!!
Danke im Voraus!!

mfg mike
PS: Hab mir schon die Doku auf www.mysql.com durchgelsen. Ist aber alles irgendwie auf Konsolenebene. Sollange es um cout geht, könnte man es ja in VC++ implementieren - aber die schicken die SQL Statements mit - ich sage jetzt mal mit "komischen" - Befehlen zur DB und da liegt mein Problem.
--

Dieser Post wurde am 01.04.2003 um 20:48 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.04.2003, 21:29 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Hier mal ein kleines Testproggi:


C++:
#include "SQL_MySql.h"  // Die Datei vom Post etwas weiter oben
#include <string>
#include <iostream>

using namespace std;

int main()
{
   MySqlConnection myConn("Datenbankname", "localhost");
   MySqlCommand myCommand(myConn);

   string x;
//   cout << "Enter SQL Query:" << endl;
//   getline(cin, x);
   x = "SELECT k.Nr, a.Name1, a.Name2, a.Strasse, a.PLZ, a.Ort FROM Kunden k, Adressen a WHERE k.Adresse = a.Lfd ORDER BY a.Name1";

   MySqlResult res = myCommand.ExecuteQuery(x);

   while(res.Next())
   {
      for(int i=0; i<res.GetFieldCount(); i++)
         if(res.IsNull(i)) cout << " | "; else cout << res.GetField(i) << " | ";
      cout << endl;
   }

   return 0;
}



Dazu brauchst Du natürlich noch eine kleine Datenbank:


C++:
create table Adressen
(
   Lfd integer not null primary key,
   Name1 varchar(25) not null,
   Name2 varchar(25),
   Strasse varchar(50),
   PLZ varchar(5),
   Ort varchar(50),
);

create table Kunden
(
   Lfd integer not null primary key,
   Adresse integer not null references Adressen.Lfd
-- weitere Felder
);



Das sollte dann klappen!
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: