Pagina 1 di 10 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 97
  1. #1

    Problema nel popolare una tabella nel DB

    Mi rivolgo di nuovo a voi per cercare di risolvere questo problema.
    Da diverse tabelle mi vengono estratte delle informazioni che devono poi essere reinserite in una nuova tabella:

    querysqlcase="SELECT Prezzo "&_
    "FROM Case " &_
    "WHERE Modello= '" &request.form("listacase1") & "';"
    set rscase=connessionedb.execute(querysqlcase)
    questo è il codice che mi estrae le informazioni e viene ripetuto, con i dovuti adattamenti, ad altri componenti come hard disk, shceda madre ecc...

    ora dopo che eseguo tutte queste query voglio inserire il campo "Modello" del recordset (In questo esempio rscase) in una tabella "ordinazioni" sempre contenuta all'interno dello stesso database

    dim queryinsert
    queryinsert="INSERT INTO Ordinazioni (Scheda_Madre, Processore, Memoria_RAM, Hard_Disk, Scheda_Video, Masterizzatore, Monitor, Case)"&_
    "VALUES ('" & rsmb.fields("Modello") & "', '" &_
    rsprocessore.fields("Modello") & "', '" &_
    rsram.fields("Modello") & "', '" &_
    rshd.fields("Modello") & "', '" &_
    rsskvideo.fields("Modello") & "', '" &_
    rsmasterizzatore.fields("Modello") & "', '" &_
    rsmonitor.fields("Modello") & "', '" &_
    rscase.fields("Modello") & "');"
    connessioneDB.execute queryinsert
    All'esecuzione della pagina ottengo questo errore:

    ADODB.Recordset (0x800A0CC1)
    Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto.
    /sitofrontpage/preventivo.asp, line 86
    dove la line 86 corrisponde a queryinsert="INSERT INTO Ordinazioni (Scheda_Madre, Processore, Memoria_RAM, Hard_Disk, Scheda_Video, Masterizzatore, Monitor, Case)"&_

    spero di ricevere risposte che mi consentano di risolvere il problema.
    grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Stampa la query invece di eseguirla:

    codice:
    response.write queryinsert:response.end
    connessioneDB.execute queryinsert
    Così vedi l'errore.
    Se non te ne accorgi posta qui la query che vedi a video tra i tag CODE però.

    Roby

  3. #3
    grazie della risposta. Non so se ricordi ma sono sempre a lavorare a quel progetto in cui c'era il problema dell'autenticazione degli utenti (problema postato all'inizio di giugno e poi risolto).
    Ho inserito la riga che mi hai consigliato ma continua a darmi l'errore alla line 86.

  4. #4
    dalla mia (piccola) esperienza credo sia un errore di query
    controlla bene i nomi dei campi della tabella !
    al massimo puoi provare a memorizzare i recordset della query precedente in variabili:
    select * from tabella
    variabile = rs(0)
    insert into tabella (nome)values ('"&variabile&"')
    controlla con un response.write ogni variabile e vedi dove è l'errore
    ciao

  5. #5
    Originariamente inviato da z1ck1
    dalla mia (piccola) esperienza credo sia un errore di query
    controlla bene i nomi dei campi della tabella !
    al massimo puoi provare a memorizzare i recordset della query precedente in variabili:
    select * from tabella
    variabile = rs(0)
    insert into tabella (nome)values ('"&variabile&"')
    controlla con un response.write ogni variabile e vedi dove è l'errore
    ciao
    i nomi dei campi della tabella ordinazioni sono esatti. Le query precedenti vengono svolte tutte correttamente e quindi non penso sia problema di contenuto dei vari recordset che di fatto non vengono mai svuotati.
    Per quanto riguarda il fatto del response.write è già presente alla fine perchè i risultati della prima tipologia di query che ho postato, viene visualizzata alla fine correttamente.
    L'inserimento invece nella tabella Ordinazioni non necessita di visualizzazione invece.

    Aiuto...

  6. #6
    essere ordinati aiuta...

    codice:
    dim qi
    
    qi = ""
    qi = qi & "INSERT INTO Ordinazioni ("
    qi = qi & "Scheda_Madre, "
    qi = qi & "Processore, "
    qi = qi & "Memoria_RAM, "
    qi = qi & "Hard_Disk, "
    qi = qi & "Scheda_Video, "
    qi = qi & "Masterizzatore, "
    qi = qi & "Monitor, "
    qi = qi & "Case"
    qi = qi & ") VALUES ("
    qi = qi & "'" & rsmb.fields("Modello") & "', "
    qi = qi & "'" & rsprocessore.fields("Modello") & "', "
    qi = qi & "'" & rsram.fields("Modello") & "', "
    qi = qi & "'" & rshd.fields("Modello") & "', "
    qi = qi & "'" & rsskvideo.fields("Modello") & "', "
    qi = qi & "'" & rsmasterizzatore.fields("Modello") & "', "
    qi = qi & "'" & rsmonitor.fields("Modello") & "', "
    qi = qi & "'" & rscase.fields("Modello") & "'"
    qi = qi & ")" 
    
    Response.Write "ciao bello: " & qi
    connessioneDB.execute qi

  7. #7
    @optime:grazie del consiglio riguardo l'identazione. L'asp lo sto imparando praticamente da solo e ogni conisglio è veramente utilissimo.
    Ho provato a fare come hai detto tu ma, di fatto, l'errore continua ad esserci. Adesso forse possiamo capirci qualcosa di più perchè me lo da alla line 98 (ovviamente si sono spostate un po' di cose):

    qi = qi & "'" & rsmb.fields("Modello") & "', "
    mi viene da pensare allora che ci sia qualche errore a livello di recordset, come se dopo l'esecuzione di tutte le query si perda qualcosa....

  8. #8
    ti ho fatto fare quel lavoro proprio perche' immaginavo fosse uno dei mille rs che usi.

    rsmb e' ancora apero quando lo usi per creare la stringa di inserimento?
    "Modello" e' un campo valido?

    ctrl

  9. #9
    allora tutti i recordset sono tutti aperti. Mi spiego meglio
    Eseguo solo queste operazioni:
    querysqlmb="SELECT Prezzo "&_
    "FROM Schede_Madri " &_
    "WHERE Modello= '" &request.form("listamb") & "';"
    set rsmb=connessionedb.execute(querysqlmb)
    e poi passo alla stessa identica query però con un pezzo diverso (ad esempio hard disk).
    Poi ci metto la query che mi hai postato tu
    I campi del recordset dovrebbero essere speculari rispetto a quelli della tabella su cui operano e quindi avremo "Modello", "Prezzo", "Quantità".
    Solo alla fine della pagina, dopo tutte le visualizzazione in html&asp di alcuni campi del recordset effettuo la chiusura:
    rsmb.close: set rsmb=nothing
    e così poi per gli altri recordset sempre degli altri pezzi.
    Spero di essere stato chiaro.

  10. #10
    quindi potrebbe essere che quella query ha fallito, e quindi il recordset e' chiuso

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.