+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 8 su 8

Errore rs.update da query union

  1. #1
    felicioni2 non è in linea Novello
    Salve a tutti ho un piccolo ma noiosissimo problema sto realizzando un piccolo programminoi per la ricerca e la modifica di alcuni dati in un database access,prima avevo una sola tabella di nome prodotti ma siccome i prodotti che sto inserendo sono tanti ho dovuto creare una nuova tabella con i stessi campi chiamata prodotti2 e ho modificato la mia query usando union solo che ora non riesco piu a farel'update del recordset ho provato a cambiare 100000 di volte le propietà del cursore ma niende quando prema sul pulsante salva mi da l'errore
    ----insufficient base table information for updating or refreshing------premetto che se non uso la query union tutto funziona!Come posso risolvere ilk problema magari trovando qualche via secondaria alla query union!chi mi aiuta? Ah posto il codice

    Private Sub cmd_cerca_Click()
    Set rs4 = New ADODB.Recordset
    rs4.CursorLocation = adUseClient
    rs4.Open "(SELECT * FROM prodotti where prodottiID = '" & Rich.Text & "')" & _
    "union (SELECT DISTINCT * FROM prodotti2 where prodottiID = '" & Rich.Text & "') ", cn, adOpenKeyset, adLockBatchOptimistic, adCmdText
    Dim prodid As String
    prodid = rs4!prodottiID
    If rs4.BOF = True Or rs4.EOF = True Then
    MsgBox "Ricerca Effettuata correttamente nessun prodotto trovato"
    Exit Sub
    End If
    MsgBox "Ricerca effettuata correttamente" & " " & prodid
    txt_codice.Text = rs4!prodottiID
    txt_nome.Text = rs4!nome
    txt_anno.Text = rs4!anno
    txt_fornitore.Text = rs4!fornitore
    txt_tipoprodotto.Text = rs4!fornitore2
    txt_pv.Text = rs4!prezzv & " "
    txt_tipom.Text = rs4!tipomotore
    txt_desc.Text = rs4!descrizione
    txt_stock.Text = rs4!stock
    txt_f2.Text = rs4!fornitore
    txt_ui.Text = rs4!unita_misura
    txt_prezzoa.Text = rs4!prezzp
    txt_ean.Text = rs4!ean

    txt_codice.Locked = True
    txt_nome.Locked = True
    txt_anno.Locked = True
    txt_fornitore.Locked = True
    txt_tipoprodotto.Locked = True
    txt_pv.Locked = True
    txt_tipom.Locked = True
    txt_desc.Locked = True
    txt_stock.Locked = True
    txt_f2.Locked = True
    txt_ui.Locked = True
    txt_prezzoa.Locked = True
    txt_ean.Locked = True
    cmd_aggiorna.Enabled = True

    End Sub
    ------------------------------------------------------------ --------

    Private Sub cmd_salva_Click()
    rs4!prodottiID = txt_codice.Text
    rs4!nome = txt_nome.Text
    rs4!anno = txt_anno.Text
    rs4!fornitore = txt_fornitore.Text
    rs4!fornitore2 = txt_tipoprodotto.Text
    rs4!prezzv = txt_pv.Text
    rs4!tipomotore = txt_tipom.Text
    rs4!descrizione = txt_desc.Text
    rs4!stock = txt_stock.Text
    rs4!fornitore = txt_f2.Text
    rs4!unita_misura = txt_ui.Text
    rs4!prezzp = txt_prezzoa.Text
    rs4!ean = txt_ean.Text
    rs4.UpdateBatch adAffectAll
    End Sub

  2. #2
    felicioni2 non è in linea Novello
    rs4!prodottiID = txt_codice.Text
    rs4!nome = txt_nome.Text
    rs4!anno = txt_anno.Text
    rs4!fornitore = txt_fornitore.Text
    rs4!fornitore2 = txt_tipoprodotto.Text
    rs4!prezzv = txt_pv.Text
    rs4!tipomotore = txt_tipom.Text
    rs4!descrizione = txt_desc.Text
    rs4!stock = txt_stock.Text
    rs4!fornitore = txt_f2.Text
    rs4!unita_misura = txt_ui.Text
    rs4!prezzp = txt_prezzoa.Text
    rs4!ean = txt_ean.Text
    rs4.Update
    scusate avevo sbagliato il comando è rs4.update non updateBatch

  3. #3
    keyiyek non è in linea Scolaretto
    vuoi dire che hai troppi records, io sapevo che c'era un limite al numero di campi devinibile in una tabella, non al numero di oggetti, per curiosità ma quanti ne hai?

  4. #4
    felicioni2 non è in linea Novello
    No ancora la tabella prodotti contiene solo 40 record solo che per prevenire essendo che ne dovrà contenere alme 6000 avevo creato due tabelle!Ma il problema ccmq rimane che con la query union non funziona proprio
    Ciao

  5. #5
    keyiyek non è in linea Scolaretto
    per quanto riguarda la query non so proprio, in sql sono super ignorante
    comunque il numero dei record non dovrebbe essere un problema per il database, altrimenti che database è?

  6. #6
    felicioni2 non è in linea Novello
    grazie per la risposta cmq te pensi che il database mi può tenere anche sui 20000 articoli?

  7. #7
    keyiyek non è in linea Scolaretto
    per quel poco che so di database, il problema si presenta in orizzontale, ovvero nella definizione dei campi, non più di 255 (in realtà meno se li definisci memo o altro), ma in verticale il problema dovrebbe essere soltanto la grandezza del file, potrei sbagliarmi, ma virtualmente il db dovrebbe contenere un numero molto alto di records (qualcosa che si esprime in notazione esponenziale), 20000 mi pare un numero accettabile.
    pensa ai server di posta elettronica che devono immagazzinare i dati di tutti gli iscritti, dove ognuno può farsi decine di caselle email, al limite il problema sta nella velocità delle query

    qualcuno mi smentisca se dico scemenze

  8. #8
    In effetti un po' di imprecisioni sono state scritte .... [img]smileys/smiley2.gif[/img] ... nulla di male comunque ...

    Cominciamo dall'inizio ...

    1) non e' possibile aggiornare i dati (quindi usare l'update) se il recordset deriva da una query union di due tabelle identiche in quanto il motore del db non potrebbe devidere in quale tabella scrivere ... (ed e' quello che dice nella descrizione dell'errore ...)

    2) non ha *assolutamente* senso usare una seconda tabella perche' pensi che la prima non sia "sufficiente" [img]smileys/smiley4.gif[/img] ... La prima va benissimo per 1 ... 1000 e 20000 articoli ... Il problema potrebbe essere quanti dati inserisci in un singolo record (per articolo) ...

    3) se il programma prevede la gestione di una grossa quantita' di dati (ma parliamo di 1 milione di record grandi o roba simile) piu' che un database Access, con cui sicuramente potresti avere problemi di corruzione e prestazioni, utilizza SQL Server (ovvero MSDE) e non avrai piu' problemi ...

    4) per quello che posso vedere, i campi del singolo articolo non sono tantissimi, ma mi sembra che il database non sia normalizzato in quanto utilizzi per il fornitore la sua denominazione e non l'id in tabella fornitori .... e cosi' via ...



    ℹ️ Leggi di più su AntonioG ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Errore Update n record
    Da pierovb nel forum Visual Basic 6
    Risposte: 12
    Ultimo Post: 28-10-2020, 13:11
  2. Errore su query UPDATE
    Da Nottambulo nel forum ASP 3, ASP .Net
    Risposte: 6
    Ultimo Post: 05-04-2013, 04:08
  3. Errore di sintassi con UPDATE
    Da easterone nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 17-01-2013, 14:51
  4. Errore istruzione UPDATE
    Da collega nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 03-05-2010, 12:12
  5. Errore update
    Da antonio_81 nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 18-01-2007, 16:13