Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [VB6]Mysql - ADO - FlexGrid

    Salve a tutti ragazzi.

    Stò passando un mio vecchio progetto di un gestionale VB6 in MYSQL dato che voglio usufruire di un DB più performante rispetto ad access ( attualmente utilizzato )
    Per connettermi uso ADODB. Ho sbirciato su qualche guida in rete e ho constatato che i comandi per la connessione e la lavorazione dei dati sono gli stessi quindi mi sono adoperato per cambiare le stringhe di connessione e fare qualche piccola modifica al trattamento dei dati. Modificato il Login , funziona ! Modificati i form per inserimento di articoli, clienti, ecc , tutto funzionante !
    Vado a modificare i form per la visualizzazione dei DATI e qui succede qualcosa che non riesco a capire, vi posto il codice per essere più chiaro.

    codice:
    Dim sqlStringaConnessione As String
    
    Set cn = New ADODB.Connection
    sqlStringaConnessione = "DRIVER={MySQL ODBC 5.1 Driver};" _
        & "SERVER=127.0.0.1;" _
        & "DATABASE=wgretail_2011;" _
        & "UID=root;" _
        & "PWD=59929603;" _
        & "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384
    cn.Open sqlStringaConnessione
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    
    MSFlexGrid1.Row = 0
    MSFlexGrid1.Col = 0
    MSFlexGrid1.Text = "ID"
    MSFlexGrid1.ColWidth(0) = 1
    
    MSFlexGrid1.Col = 1
    MSFlexGrid1.Text = "COD PRODOTTO"
    MSFlexGrid1.ColWidth(1) = 1200
    
    MSFlexGrid1.Col = 2
    MSFlexGrid1.Text = "QUANTITA'"
    MSFlexGrid1.ColWidth(2) = 1000
    
    MSFlexGrid1.Col = 3
    MSFlexGrid1.Text = "GIACENZA"
    MSFlexGrid1.ColWidth(3) = 1000
    
    MSFlexGrid1.Col = 4
    MSFlexGrid1.Text = "Q MINIMA"
    MSFlexGrid1.ColWidth(4) = 1100
    
    MSFlexGrid1.Col = 5
    MSFlexGrid1.Text = "PREZZO L1"
    MSFlexGrid1.ColWidth(5) = 1200
    
    MSFlexGrid1.Col = 6
    MSFlexGrid1.Text = "PREZZO L2"
    MSFlexGrid1.ColWidth(6) = 1200
    
    rs.Open "SELECT ID,codprodotto,quantita,giacenza,qminima,prezzol1,prezzol2 FROM articoli", cn, 3, 3
    
    
    
    If rs.EOF = False Then
    rs.MoveFirst
    
    MSFlexGrid1.FixedRows = 1
    MSFlexGrid1.Rows = rs.RecordCount + 1
    MSFlexGrid1.Cols = rs.Fields.Count + 1
    MSFlexGrid1.Row = 1
    MSFlexGrid1.Col = 0
    MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
    MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
    MSFlexGrid1.Clip = rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
    MSFlexGrid1.Row = 1
    Else
    GoTo esci
    End If
    
    MSFlexGrid1.Visible = True
    
    Set rs = Nothing
    cn.Close
    Screen.MousePointer = vbDefault
    
    esci:
    
    GST_ERR:
    End Sub
    Ecco qui, con access questo funzionava , con il passaggio a MYSQL genera un errore qui
    codice:
    MSFlexGrid1.Row = 1
    questo succede perchè qui
    codice:
    MSFlexGrid1.Rows = rs.RecordCount + 1
    a mio parere non riesce a fare il conteggio delle righe nella tabella, infatti andando in DEBUG il valore di rs.RecordCount è -1 mentre invece dovrebbe essere 6

    Chiedo il vostro aiuto nuovamente !

    Grazie tante e buona serata !

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perchè devi impostare il cursore della connessione lato client:

    codice:
    CN.CursorLocation = adUseClient
    Solo quando esegui un'aggiornamento (INSERT o UPDATE) in cui è necessario utilizzare una transazione devi impostarlo momentaneamente lato server (adUseServer) e dopo l'aggiornamento lo rimetti di nuovo lato client.

    Vedi questo progetto di esempio:
    Progetto ProvaLogin v.3
    http://nuke.vbcorner.net/Progetti/VB...T/Default.aspx

  3. #3
    Ciao gibra ( modificato , era girba , svista mia xD ) 1 minuto prima della tua risposta stavo già scaricando il tuo progetto da Nuke corner .
    Solo una cosa grazie ! mai trovato nulla di più utile !

    Ciao e grazie a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.