Primärschlüssel einer DB
-
Ich habe eine Datenbank und hab da nen Primärschlüssel drinne, der immer +1 rechnet wenn ich einen neuen Datenstz hinzufüge.
Nun meine erste Frage. Ist es möglich, dass ich die Spalte mit dem Primärschlüssel in meinem Programm nicht anzeigen muss? Weil der Schlüssel ist nur gut zum Navigieren in den Datensätzen. Also nur für die Buttons die das Programm automatisch schon hat. Den Schlüssel muss man also gar nicht sehen.Zweite Frage. Ich hab außerdem eine Spalte wo Artikel-Nr. stehen oder halt irgendwas anderes(das Wort is mir nur gerade eingefallen). Nun möchte ich diese Spalte nach einer bestimmten Nummer durchsuchen. Wie mache ich das?
Nachdem dann die Nummer gefunden wurde, soll das Programm zu dem Datensatz navigieren und den dann anzeigen.
Danke
MFG
-
Also die Spalte mit deinem Primärschlüssel muss nicht angezeigt werden, solange du die Nummer halt nicht angezeigt haben willst :>
Und das mit der Suche kannst du über m_StrFilter machen(ist wie die Where Funktion unter SQL), aber wie er denn gleich zu dem Satz geht kp, ich habs mir über nen extra Listenfeld anzeigen lassen.
-
Und wie genau funktioniert das mit dem m_strFilter? Hab schon bei google gesucht und im Forum bin aber nicht wirklich auf den grünen Zweig gekommen. Die MSDN hilft mir auch nicht.
Ich versteh einfach den Syntax nicht und was ich davor aufrufen, bzw tun muss.
MFG
-
-
Ich versteh das net ganz. Meine Tabelle heißt "Artikel" und ich will die Spalte "Artikel-Nr" durchsuchen. Die Spalte wird ausgelesen mit "m_pSet->m_Artikel_Nr"
Wie mache ich das denn jetzt mit dem m_strFilter??
-
Kannst du SQL? Das was du in m_strFilter reinschreiben musst ist das WHERE.
SELECT... WHERE Artikel-Nr = 2Das sieht dann so aus:
m_pSet->m_strFilter = "Artikel-Nr = 2";
Dann noch Requery oder Open und fertig.
-
Wenn ich das eingebe, sagt er mir "2 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben".
Was heißt eigentlich dieses "Artikel-Nr=2" in deinem Code?
Ich steig durch diese Filter einfach net durch!!
-
Das "Artikel-Nr=2" heisst nur das er sucht wo die Artikel-Nr= 2 ist.
-
Und wieso kommt dieser komische Fehler?
-
Welcher Fehler?
-
2 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben
Kommt wenn ich in das Eingabefeld was eingebe wonach der Suchen soll.
Ich poste einfach mal den ganzen Code//Neue Position einstellen UpdateData(TRUE); unsigned long search = 0; movedlg.m_Move_to_Artikel_Nr = search; m_pSet->m_strFilter ="Artikel-Nr = 2" m_pSet->Requery(); //Formular aktualisieren UpdateData(FALSE);
-
void CTest3View::OnSearch()
{
UpdateData(true);
m_pSet->m_strFilter.Format(_T("[Artikel].[Artikel-Nr]=\'%d\'"),m_Nr);
if(m_pSet->CanRestart())
{
m_pSet->Requery();}
UpdateData(false);}
so sollte das ganze laufen. m_Nr ist in diesem Fall einfach nen Edit feld was ich verwendet habe.
-
Jetzt kommt
"Datentypen in Kriterienausdruck unverträglich"
immer so komische Fehler
-
Komisch bei mir hats so funktioniert, als was hast du denn deine Artikel_Nr in der Datenbank? Und als was hast du die Variable des Editfelds erstellt?
-
Die Spalte ist vom Typ long und das Editfeld auch.