
Ergebnis 1 bis 8 von 8
-
Fühle mich heimisch
- 26.07.2004, 07:49
- #1
Ich habe da ein kleines Problem. Da cdb keinen PrimaryKey unterstütz, muess ich wohl oder übel selber eine Funktion schreiben für das.
Nun möchte ich aus einer TabellenSpalte die grösste Nummer ausfindig machen. In SQL geht das ja mit SELECT MAX. Wiess jemand ob das mit ADOCE 3.1 möglich ist?
Danke
-
- 26.07.2004, 09:25
- #2
also jetzt gibt mal ein DB-Dummy ne antwort
Ev. habe ich sogar Glück und ich erzähle hier eine Geschichte die etwas Wahrheit hat...
Könntest du nicht zuerst sortieren und dann den ersten Datensatz nehmen? Das wäre ja dann der höchste... je nach dem nach was du sortierst...
So habe ich es zumindest auch schon gemacht... glaube ich zumindest
gruss marco
-
Fühle mich heimisch
- 26.07.2004, 13:30
- #3
Hmm. Wie das auch so ist. Man sucht immer viel zu weit.
Danke schön.
Übrigens habe ich in zwischenzeit rausgefunden, dass es gar keine SELECT MAX() Funktion mit ADOCE 3.1 gibt.
Im eVB unter Hilfe -> Contents -> Microsoft eMbedded Visual Basic 3.0 -> ADOCE 3.0 -> SQL Reference ist die auf jeden Fall nicht drin. Und ich glaube nicht, dass die bei einem Versionwechsel von 0.1 eine ganze Funktion hinzufügen. Das wäre irgend wie M$ atypisch.
Danke auf jeden fall für den Lösungsansatz.
-
Fühle mich heimisch
- 26.07.2004, 14:31
- #4
Also ich hab das mal so gelöst:
Code:Private Function PrimaryKey() As Integer Dim PK As Integer If connOpen = True Then MsgBox "ConnOpen" Set rs = CreateObject("ADOCE.Recordset.3.1") rs.Open "SELECT PKID_lnd FROM tblLnd ORDER BY PKID_lnd", conn, adOpenForwardOnly, adLockReadOnly rs.MoveLast PK = rs(0).Value Else MsgBox "ConnClosed" End If End Function
Code:Private Sub Command1_Click() MsgBox PrimaryKey End Sub
Danke
-
Fühle mich heimisch
- 26.07.2004, 14:55
- #5
VERGESST DAS GANZE. Ich glaub ich hatte den Kopf nicht so ganz bei der Sache.
Hat sich erledigt.
-
- 26.07.2004, 20:19
- #6
hehe super wie sich die Probleme lösen
viel spass weiterhin
-
- 28.07.2004, 11:32
- #7
Aber da ist ja eine neue Frage aufgetaucht:
Nur leider zeigt mir die MsgBox keinen Wert an. Wie kann ich den Wert von PK aus der Funktion PrimaryKey in die Sub Command1_Click() zurück geben?
Code:Private Function PrimaryKey() As Integer If connOpen = True Then Set rs = CreateObject("ADOCE.Recordset.3.1") rs.Open "SELECT PKID_lnd FROM tblLnd ORDER BY PKID_lnd", conn, adOpenForwardOnly, adLockReadOnly rs.MoveLast PrimaryKey = rs(0).Value Else PrimaryKey = -32768 End If End Function
Möglicherweise wäre folgendes etwas schneller, statt:
Code:rs.Open "SELECT PKID_lnd FROM tblLnd ORDER BY PKID_lnd", conn, adOpenForwardOnly, adLockReadOnly rs.MoveLast
Code:rs.Open "SELECT PKID_lnd FROM tblLnd ORDER BY PKID_lnd Desc", conn, adOpenForwardOnly, adLockReadOnly
Kleine Anmerkung: ich habe noch nie für den PocketPC programmiert, aber so würde ich das machen mit VBA machen.
-
Fühle mich heimisch
- 28.07.2004, 16:19
- #8
Code:rs.Open "SELECT PKID_lnd FROM tblLnd ORDER BY PKID_lnd Desc", conn, adOpenForwardOnly, adLockReadOnly
Hier http://www.pocketpc.ch/viewtopic.php?t=6047 kannst du mal schauen was ich bis jetzt gemacht habe.
Pixel 10 Serie mit Problemen:...