Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » datenbanktabellen zur Laufeit ändern

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
23.10.2003, 13:19 Uhr
hanniplastik



Moin,
hat jemand ne ahnung, wie man zur laufzeit die datenbanktabelle, auf die ein cdaoRecordset zugreift, verändern kann???
Bin für jede hilfe dankbar!!

hätte ich fast vergessen, es handelt sich um eine Access datenbank.

Dieser Post wurde am 23.10.2003 um 13:20 Uhr von hanniplastik editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.10.2003, 17:37 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
was soll verändert werden? Die Struktur?
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 23.10.2003 um 17:38 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.10.2003, 07:20 Uhr
hanniplastik



moin,
also, ich hab ne access Datenbank, mit mehreren Tabellen.
Nun möchte ich, wenn ich in meinem Programm ein Produkt hinzufüge, für dieses Produkt auch ne eigene Datenbanktabelle in dieser Datenbank erstellen.
Diese ist für jedes Produkt immer gleich, und soll aus einer Standardvorgabetabelle entstehen, indem ich diese einfach kopiere und umbenenne.
Auf diese einzelnen Produktdatenbanktabellen möchte ich dann mittels eines einzigen daorecordsets zugreifen. Da die Spaltennamen meiner Datenbanktabellen ja aufgrund des Kopierens gleich sind, müßte ich, wenn ich es manuell machen würde im klassenassistenten dann immer, bevor ich drauf zugreife, die Datenbanktabelle des recordsets ändern, um nicht auf alle Spalten mit dem gleichen namen zuzugreifen.
Geht sowas während der Laufzeit???
Ist das überhaupt möglich?
Wenn ja, weißt du wie?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.10.2003, 21:19 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
warum denn kopieren und umbenennen?

C++:
void CListDlg::OnCreatedb()
{
    
    CString lpszFile = "I:\\Database.mdb"; // anpassen
    database.Create(lpszFile);
            
    CString Event = "CREATE TABLE Ereignis ( Datum DATETIME,Ereignis VARCHAR(30),Notiz VARCHAR(30) );";

    database.Execute(Event);
        
        
    recordset.Open(AFX_DAO_USE_DEFAULT_TYPE,
        "SELECT * FROM Ereignis", 0);
    
    recordset.AddNew();    
    recordset.SetFieldValue("Datum","09/03/2004");    
    recordset.SetFieldValue("Ereignis","Geburtstag");
    recordset.SetFieldValue("Notiz","Feier vorbereiten");
    recordset.Update();
    
    recordset.AddNew();
    recordset.SetFieldValue("Datum","31/12/2003");
    recordset.SetFieldValue("Ereignis","Denk nach");
    recordset.SetFieldValue("Notiz","Skiausrüstung überprüfen");
    recordset.Update();    
    
    recordset.Close();
    
    database.Close();
}


wobei fogendes gilt:
CDaoDatabase database;
CDaoRecordset recordset(&database);
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.10.2003, 08:21 Uhr
hanniplastik



jo, danke, das funktioniert,
allerdings sind die datensatztabellen vom Aufbau her alle gleich, also wäre kopieren eigentlich praktischer, aber egal.
aber wie greif ich denn nu auf den neu erstellten tabellen zu.
Bei getdefaultsql müßte ich ja denn ne Variable übergeben.
Weißt du wie das geht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.10.2003, 13:50 Uhr
hanniplastik



hmm, das funzt schon, aber eigentlich habe ich eine bestehenden Datenbank und möchte nur eine tabelle hinzufügen, nicht gleich ne ganze datenbank erstellen.
müßte ja eigentlich anstelle von Create sowas wie edit oder addnew geben nur nicht für Zeilen, sondern für ganze tabellen, leider kann ich das in msdn nicht finden, oder versteh das einfach nicht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
28.10.2003, 14:11 Uhr
hanniplastik



sorry, war mal wieder zu blöde, hat sich erledigt.
Vergiß den letzten Post.
Allerdings weiß ich immer noch nicht, wie ich dann auf die neu erstellten Tabellen zugreifen kann???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
28.10.2003, 14:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



C++:
recordset.Open(AFX_DAO_USE_DEFAULT_TYPE, [b]"SELECT * FROM Ereignis"[/b], 0);



in diesem Fall heißt die Tabelle "Ereignis" welche geöffnet wird!

Du musst dann einfach aus "Ereignis" deine Tabelle machen!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
29.10.2003, 10:09 Uhr
hanniplastik



moin, erstmal danke,
weiß jemand zufällig noch, wie man an die unterschiedlichen Parameter zur Erstellung der Spalten kommt.
sowas wie das Format, den Felddatentyp, oder Eingabe erforderlich Ja/Nein, nulleingaben erlaubt ja/nein
in der msdn steht das nämlich nicht drin, oder ich habe es nicht gefunden
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
29.10.2003, 10:16 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


SQL-Syntax, schau unter Ebooks, da gibts SQL in 21Tagen, da steht einiges dabei...
--
class God : public ChuckNorris { };
 
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: