[VB6][MySQL] Loop Fehler

Er Makiert das vom letzten Post

Run-time error '3021':

Entweder BOF oder EOF is True, oder der aktuelle Datensatz wurde gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz.

- das die Tabel/spalte nicht da is können wir sofort ausschliesen.!
 
bb hat Dir doch eigentlich alles schon ganz richtig geschrieben:

Visual Basic:
If rs.bof and rs.eof then
       Msgbox "Daten nicht gefunden", vbCritical
Else
       while not rs.eof ' man kann es auch mit do loop machen while finde ich schöner
            Listbox1.Items.add(rs!Felda)
           rs.MoveNext
      wend
End If


bb schrieb auch:

dein fehler liegt hier glaube ich


vb Code:
MySQL.Last_Query = rs.GetString

Das meine ich auch. Warum probierst Du denn nicht mal die Punkte, die man Dir hier vorschlägt?

Grüsse
ronaldh
 
MySQL.Last_Query = rs.GetString ist in
MySQL.Array_Query geändert worden.
und der fehler ist auch mit dem code nach wie vor der selbe!
 
Was SOLL DAS

Visual Basic:
MySQL.Last_Query = rs.GetString

MySQL.Array_Query geändert worden.
macht auch keinen Sinn

was möchtest du damit erreichen ?

Willst du deine Daten auslesen ? Dann halte dich an unsere Ratschläge willst du was ganz anderes dann präzisiere bitte dein Problem.

Grüsse bb
 
ja bb das könnte aus dem code, aber fehler wäre dann immer noch da.#

der Aktuelle Code

Code:
Public Sub GetMysqlData()
Dim PAGERANK As String
Dim ID As String
Dim URL As String
Dim rs As New adodb.Recordset
Dim SQL As String

SQL = "Select ID, URL , PAGERANK From PLD_LINK"
rs.Open SQL, Mysql_Connection
Do While Not rs.EOF

txt_linkid.Text = (rs!URL)
rs.MoveNext
Set rs = Nothing
Loop
End Sub

dann makiert er das gelbe und schreibt folgenden fehler:

Run-time error '3704':

Der Vorgang ist für ein geschlossenes OBjekt nicht zugelassen.
 
Zuletzt bearbeitet:
Jetzt hast du den Fehler definitiv hier
Visual Basic:
Set rs = Nothing
das muss nach der Schleife erfolgen.

Grüsse bb
 
danke brain, das funktioniert nun wie geschmiert, aber nun macht der immer nur eine URL, und die is dann im Loop. der soll ja alle machen, nun sind wir soweit wie beim Ersten Post von diesem Thread hier der code von dem Loop :

Code:
Do While Not PrUpdater
GetMysqlData
    

    Chrlinkid = txt_linkid.Text
    Chrlinkurl = txt_linkurl.Text
    Chrpreviouspr = txt_previouspr.Text
    Chrnewpr = txt_newpr.Text
             
ListView1.ListItems.Add , , Chrlinkid
    With ListView1.ListItems(ListView1.ListItems.Count)
        .SubItems(1) = Chrlinkurl
        .SubItems(2) = Chrpreviouspr
        .SubItems(3) = Chrnewpr
        .SubItems(4) = Chrnewpr
        .EnsureVisible 'scroll
    End With

Loop
            
            
    Set PrUpdater = Nothing
 
Ich glaube das liegt daran, dass du 2 Schleifen hast. In der ersten läufst du durch dein Recordset hier schreibst du die Daten in eine Textbox ( aber nur einen Datensatz ). Dann liest du die Daten aus deiner Textbox in ein Listview und zwar so lange bis prUpdater true liefert.
Demnach hast du hier irgendwie einen logischen Fehler. Wieso lässt du nicht in der Funktion in der du dein Recordset öffnest direkt deine Listbox befüllen ? Du brauchst nur eine Schleife.

Grüsse bb
 
Crimetime,

mit jedem neuem Tipp, den Du hier bekommst, baust Du neue Fehler ein. An Deiner Stelle würde ich das ganze nochmal neu machen, denn an und für sich ist dies eine wirklich simple Schleife. Deine Programmlogik ist so unnötigerweise kompliziert, dass Du selbst den Überblick nicht mehr hast. Und wenn wir versuchen Dir zu helfen, müssen wir durch alle Posts blättern, um zu sehen, welche Funktion nun was macht.

Schau Dir doch mal diesen Tipp an. Da ist eine ähnliche Schleife, die Grid oder Listview befüllt, beschrieben.

Viele Grüsse
ronaldh
 
Das Loop Problemchen habe ich nun mit Splitit gelöst, somit Splitte ich nun alle Datensätze richtig.

Doch nun ist ein neuer Fehler aufgetreten mit Update Table, ich benutze Folgenden Code:

Code:
'Erklärung: PRSetting = Die Spalte wo der Alte PR drinne ist, und Chrnewpr ist der wert der geändert werden soll.

rs.Fields(PRSetting).Value = Chrnewpr
rs.Update

Das Gelbe Teil des Codes wird Markiert, und diese Fehlermeldung kommt:

Code:
Run-time error '3251':

Das aktuelle Recordset unterstützt keine Aktualisierung. Hierbei handelt es sich möglicherweise um eine Einschränkung seitens des Providers oder des gewählten LockTypes.

Ausgeschlossen werden kann das die Einschränkungen vom Provider sind.

Code des Recordset's:
Code:
Do While Not rs.EOF
'zwischen Code entfernt, schon in vorherigen Posts, hat sich nichts ran geändert.
Loop
Set rs = Nothing

Hoffe jemand hat eine Idee wie wir das noch beheben können um diesen Thread endlich als Erledigt zu Markieren ;)

Gruß CrimeTime
 

Neue Beiträge

Zurück