Visualizzazione dei risultati da 1 a 5 su 5

Discussione: 255 caratteri

  1. #1

    255 caratteri

    Salve a tutti, ho poca esperienza in programmazione e vorrei porvi un problema.
    Ho realizzato un form per una INSERT
    <code>
    Dim trans As Odbc.OdbcTransaction
    conn.Open()
    trans = conn.BeginTransaction()
    Dim cmd As New Odbc.OdbcCommand("INSERT INTO Prodotti(Nome,Descrizione) " & _
    "VALUES (?,?)", conn)
    cmd.Parameters.AddWithValue("Nome", Me.txtNome.Text)
    cmd.Parameters.AddWithValue("Descrizione", Me.txtAreaDescrizione.Text)
    cmd.Transaction = trans
    </code>
    Se ne form inserisco più di 255 la transazione non parte!!! e non mi restituisce nessun errore..
    Il database è in access e il campo descrizione è impostato su "memo"
    Cosa posso fare, vi prego aiutatemiiii!!

  2. #2
    Probabilmente memo ha un limite di 255 caratteri... usa un tipo text del db di access

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: 255 caratteri

    Originariamente inviato da dcampiglia22
    Salve a tutti, ho poca esperienza in programmazione e vorrei porvi un problema.
    Ho realizzato un form per una INSERT
    <code>
    Dim trans As Odbc.OdbcTransaction
    conn.Open()
    trans = conn.BeginTransaction()
    Dim cmd As New Odbc.OdbcCommand("INSERT INTO Prodotti(Nome,Descrizione) " & _
    "VALUES (?,?)", conn)
    cmd.Parameters.AddWithValue("Nome", Me.txtNome.Text)
    cmd.Parameters.AddWithValue("Descrizione", Me.txtAreaDescrizione.Text)
    cmd.Transaction = trans
    </code>
    Se ne form inserisco più di 255 la transazione non parte!!! e non mi restituisce nessun errore..
    Il database è in access e il campo descrizione è impostato su "memo"
    Cosa posso fare, vi prego aiutatemiiii!!
    Il limite del memo è circa 65.000 caratteri da interfaccia utente e circa 2 Gbyte da programmazione (Access 2007). Due Giga, se ho letto bene, non mi sogno certo di usarli, ma 60.000 caratteri si immagazzinano benissimo. Uso OleDb però: odbc con Access sono dal secolo scorso che non lo uso
    Pietro

  4. #4
    Probabilmente devi approfondire le caratteristiche di quell'oggetto che istanzi:
    OdbcTransaction
    Non è che per caso ha dei limiti? ad esempio nei parametri della funzione AddWithValue

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    questa è una prova: leggo un file di circa 250.000 caratteri, lo taglio a circa 65.000 caratteri, lo archivio in un campo memo, lo leggo e lo metto in una label, e tutto con Odbc

    pagina:
    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="b.aspx.vb" Inherits="prove_b" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Pagina senza titolo</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="Scrivi e leggi Memo" />
            
    
            
    
            <asp:Label ID="Label1" runat="server"></asp:Label>
        </div>
        </form>
    </body>
    </html>
    codice
    codice:
    Option Strict On
    
    Partial Class prove_b
        Inherits System.Web.UI.Page
    
        Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
            'leggo un file di circa 250.000 caratteri
            Dim s As String = File.ReadAllText("C:\Documenti\Visual Studio 2005\Projects\libreria\libreria\ModuloWeb.vb")
    
            Dim connessione As Odbc.OdbcConnection = Nothing
            Dim comando As Odbc.OdbcCommand = Nothing
            Dim transazione As Odbc.OdbcTransaction = Nothing
            Dim sql As String = ""
            Try
    
                connessione = New Odbc.OdbcConnection(StringaConnessione)
                connessione.Open()
                transazione = connessione.BeginTransaction()
                comando = connessione.CreateCommand()
                comando.Transaction = transazione
                sql = "UPDATE [TABELLA12] SET [MEMO] = ? WHERE [ID] = ? "
                comando.CommandText = sql
                comando.Parameters.Clear()
    
                'la stringa immessa deve essere necessariamente tagliata, pena errore
                comando.Parameters.Add("memo", Odbc.OdbcType.VarChar, 65535).Value = s.Substring(0, 65535)
                comando.Parameters.Add("id", Odbc.OdbcType.SmallInt).Value = 1
                comando.ExecuteNonQuery()
                transazione.Commit()
    
                'adesso leggo il memo e lo metto nella label
                sql = "SELECT [MEMO] FROM TABELLA12 WHERE [ID]=1"
                comando.CommandText = sql
    
                Dim reader As Odbc.OdbcDataReader = comando.ExecuteReader(CommandBehavior.SingleRow)
                If reader.HasRows Then
                    reader.Read()
                    Me.Label1.Text = "<pre>" & reader(0).ToString() & "</pre>"
                End If
    
    
            Catch ex As Exception
                PrintLn(ex.ToString())
                If (transazione IsNot Nothing AndAlso transazione.Connection IsNot Nothing) Then transazione.Rollback()
    
            Finally
                If connessione IsNot Nothing Then connessione.Close()
            End Try
        End Sub
    
        Private Function StringaConnessione() As String
            Return "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\dati\test\test.mdb;Uid=Admin;Pwd=;"
        End Function
    End Class
    Pietro

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 © 2026 vBulletin Solutions, Inc. All rights reserved.