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

    [Vba]Errore in una query insert su un campo memo

    ciao,
    ho un problema su una query insert quando i caratteri inseriti in un campo memo superano quota 18/20.000.
    quello che faccio è leggere il contenuto di un file di testo e inserirlo in un campo memo del db, ma quando i caratteri superano il numero indicato sopra ottenggo l'errore di runtime 3075: query troppo lunga...
    questo è il codice che utilizzo:
    codice:
    ...
    	    Dim fso As New FileSystemObject, ts As TextStream
                Dim s As String, sql As String
    	    Dim db as Database
    	    Set db as CurrentDb()
                
                Set fso = CreateObject("Scripting.FileSystemObject")
                
                For i = 1 To selFiles
                    
                    Set ts = fso.OpenTextFile(.SelectedItems.Item(i), ForReading)
                    
                    s = ts.ReadAll
                    
                    ts.Close
                    
                    sql = "INSERT INTO documenti (lid, dtitle, dtext, ddata) VALUES (" & _
                            Me.lang.Column(0) & ", '" & _
                            Replace(nof(.SelectedItems.Item(i)), "'", "''") & "', '" & _
                            Replace(s, "'", "''") & "', '" & _
                            Now() & "')"
                            
                    db.Execute (sql)
                    
                Next i
    qualcuno sa indicarmi una soluzione al problema?
    xxx

  2. #2
    Ma guarda che il Campo memo ha un limite di TOT caratteri ... non è infinito il numero di caratteri che puoi memorizzare, ma cosa registri un libro?


  3. #3
    lo so, un campo memo ha un limite di 65.000 caratteri circa.
    devo registrare vari articoli che tempo addietro avevo salvato su file di testo ed ora vorrei riorganizzare
    xxx

  4. #4
    Ma puoi provare prima con l' AddNew e vedere se ti da lo stesso errore, inoltre puoi alzare il bufferTomeout della tua connessione.

    Mettilo a 60 secondi, e usa il cursore dimanico.

  5. #5
    grazie, il problema non era legato al timeout bensì alla lunghezza massima del comando execute (32.000 caratteri circa)
    usando un recordset ed il metodo addnew il problema non sussiste.

    xxx

  6. #6
    Bene utile info.

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.