Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Db mit mehrerern Spalten

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 <
000
22.06.2003, 12:38 Uhr
~Daniel
Gast


Hallo

Hab noch immer das selbe Problem mit meiner kleinen DB. Wenn ich mehr als eine Tabelle (MS Access) mit meiner Anwendung befüllen möchte bekomme ich folgenden Error: "Datensatzgruppe kann nur gelesen werden."

Ich verstehe absolut nicht warum ich die DB nicht befüllen sollen könnte,
wenn ich nur eine Tabelle habe funktionierts ja auch???

Würd mich sehr freuen wenn mir vielleich jemand weiterhelfen könnte.

Schöne Grüße Daniel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.06.2003, 15:37 Uhr
LiLLy



Wie ist denn Deine DB aufgebaut?
Wieviele Tabellen mit welchen Beziehungen?
Was genau macht Deine Anwendung bzw. wie?

Wäre hilfreich;O)
Gruß
LiLLy
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.06.2003, 17:55 Uhr
~Daniel
Gast


Ich hab 2 Tabellen

Die erste heißt "Project" und hat folgende Spalten:
"project_id", "path", "name"

Die zweite mit dem Namen "File" hat diese Spalten:
"file_id", "path", "name", "project"

file_id und project_id sind jewils die PK's.
Die Tabelle Project hat mit File eine 1:n Beziehung wobei die Spalte Project in der Tabelle File den FK darstellt.

Zur Zeit will ich einfach nur mal etwas in die DB schreiben wenn ich einen Button drücke.


C++:

void CDBTestView::OnBnClickedButton1()
{
    try {
        CDBTestSet* pSet = new CDBTestSet();
        if(pSet->Open()){
            pSet->MoveLast();
            pSet->AddNew();
            pSet->m_Project_ID = 4;
            pSet->m_ProjectName= "Test";
            pSet->m_ProjectPath= "C:\\Test\\Test1";
            pSet->Update();
            pSet->Requery();
            pSet->Close();
        }
    }
    catch(CDBException* pe) {
        AfxMessageBox(pe->m_strError);
        pe->Delete();
    }
}


-- Code - Tag -- gesetzt.

Dieser Post wurde am 22.06.2003 um 23:06 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.06.2003, 23:05 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Hast Du zufällig unter Access eine Spalte "Indiziert"?
--
"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
22.06.2003, 23:20 Uhr
LiLLy



Vielleicht hängt das ja auch damit zusammen, das Du in den 1:Tabelle keinen Eintrag machen kannst, weil es dafür keine Entsprechung n der n:Tabelle gibt....
Hast Du mal versucht in beide Tabellen etwas einzufügen (mittels SQL) ?
Oder vielleicht ist ja auch der Datensatz "schreibgeschützt" bzw. gesperrt?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.06.2003, 13:46 Uhr
~Daniel
Gast


Ich hab schon versucht in beide Tabellen etwas einzufügen hat aber auch nicht funktioniert.
Wie kann ich denn herausfinden ob ein Datensatz gesperrt bzw. schreibgeschützt ist?? Und vorallem wie kann ich ihn entsperren / entschreibschützen

Ich habe folgende Spalten indiziert:
Project_ID - Indiziert (ohne Duplikate)...........PK
project - Indiziert (mit Duplikaten)................FK
File_ID - Indiziert (ohne Duplikate)................PK

Was ist eigentlich indiziert?? Ich habs nicht so mit DB's.

Danke!!

MFG Daniel der verzwifelte.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.06.2003, 20:22 Uhr
LiLLy



Entsperren bzw. Sperren kannst Du die Felder der Tabelle über die Eigenschaften. Da gibt es direkt die Eigenschaft "Gesperrt".


Zitat:
Ich hab schon versucht in beide Tabellen etwas einzufügen hat aber auch nicht funktioniert.


Mittels SQL?


Zitat:

Ich habe folgende Spalten indiziert:
Project_ID - Indiziert (ohne Duplikate)...........PK
project - Indiziert (mit Duplikaten)................FK
File_ID - Indiziert (ohne Duplikate)................PK



Der FK ist doch Project_ID oder?

Hast Du eigentlich ein Formular erstellt, wahrscheinlich schon, oder? Du sprichst ja von einem Button. Wenn ja, wie hast Du das Formular aufgebaut?
(z.B. Hauptformular-Unterformular).
Kannst Du keine neuen Datensätze anfügen, oder kannst DU grundsätzlich nichts einfügen?


Definition zu indiziert:
Felder, die häufig nach bestimmten Merkmalen durchsucht werden, sollten indiziert werden, weil das Suchen in indizierten Feldern schneller abläuft.
Für indizierte Felder wird eine spezielle Tabelle erstellt, die mit Hilfe des Indexbegriffs das schnelle Auffinden eines Datensatzes erlaubt. Für die Erstellung des Index ist es wichtig, ob der Inhalt des Indexfeldes den Datensatz eindeutig identifiziert oder nicht (ohne/mit Duplikate)

Dieser Post wurde am 23.06.2003 um 20:22 Uhr von LiLLy editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.06.2003, 23:17 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
ich nehme an, da ist etwas anders faul. Hast Du überhaupt für jede Tabelle einen eigene Recordset Klasse eingefügt und z.B. die Sache in der Doc-Klasse "zusammengelötet"?
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 23.06.2003 um 23:19 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.06.2003, 17:13 Uhr
~Daniel
Gast


@Uwe

Ich mus für jede Tabelle eine eigene Recordset Klasse einfügen??
Das wusst ich gar nicht .... Bin noch recht neu auf dem C++ gebiet .... wie mach ich denn das?? Kennt vielleicht jemand eine Seite wo ich mir das alles mit C++ und DB's reinziehen kann??

Danke

MFG Daniel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
26.06.2003, 10:01 Uhr
~Daniel
Gast


Danke

Das mit den 2 Klassen hat funktioniert.
Läuft alles wunderbar

Vielen Dank

MFG Daniel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: