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

    [VB6] procedura per creare tabelle

    Non riesco proprio a capire la logica di questo codice che devo correggere! Come funzione, qualcuno può aiutarmi?


    codice:
    Public Sub subCreaTabelle()
        
        On Error GoTo subCreaTabelle
    
        i = 0
        ' Crea nuova tabella
        Set rs = New Recordset
        rs.Open " CREATE TABLE tbTabella_" & i & " (Riga int, CodProdotto nvarchar (15), Referenza nvarchar(15)) ", db, adOpenStatic, adLockOptimistic 
     
    Exit Sub
    subCreaTabelle:
        Select Case Err.Number
            Case Is = -2147217900
                If i <= 500 Then
                    i = i + 1
                    Resume 0
                Else
                    MsgBox "Error!!! " & Str$(Err.Number) & " " & Err.Description, vbInformation
                End If
            Case Else
                MsgBox "Error!!! " & Str$(Err.Number) & " " & Err.Description, vbInformation
        End Select
    End Sub
    DB, DB, non è Brigitte Bardot...

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    come da regolamento:

    specificare linguaggio e versione
    usare titoli significativi
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    up
    DB, DB, non è Brigitte Bardot...

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    709
    Da quel che mi sembra di capire, il codice non dovrebbe fare altro che creare una serie di tabelle uguali, con lo stesso nome seguito da un numero progressivo da 0 a 500... il problema è che, a quel che mi risulta (ho appena iniziato a programmare), l'oggetto recordset serve ad immagazzinare il risultato di un'istruzione DML (Data Manipulation Language) come SELECT, mentre l'istruzione CREATE fa parte del DDL (Data Definition Language): secondo me dovresti utilizzare un oggetto di tipo Command.
    Inoltre hai detto che devi correggere il codice: cos'è che non funziona? Quali messaggi restituisce il debugger?

    Secan

  5. #5
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    codice:
        rs.Open " CREATE TABLE tbTabella_" & trim(str(i)) & " (Riga int, CodProdotto nvarchar (15), Referenza nvarchar(15)) ", db, adOpenStatic, adLockOptimistic
    ...gia' solo in questa riga ci sono almeno 2 errori:

    -Per lanciare quella sql devi usare il metodo EXECUTE della connection e non il metodo open del recordset
    -ti ho messo la correzione in rosso per il secondo problema

    in piu', la label della gestione degli errori deve avere un nome diverso rispetto al nome della funzione/sub (mi pare strano che questa cosa abbia superato la compilazione).

    ...and I miss you...like the deserts miss the rain...

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.