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

    [ASP] Query in errore ma non capisco il motivo

    Premendo un pulsante eseguo questo codice:

    Private Sub Command1_Click()
    Dim valore1 As String
    valore1 = InputBox("Inserisci il nome del prodotto")
    Text1.Text = valore1

    Set rsRecordSet = New ADODB.Recordset
    rsRecordSet.Open "SELECT [ID],[Nome Prodotto],[Descrizione],[Cod Articolo],[Cod Componente],[N° Disegno - Completo],[Documento],[N° Disegno - Prefisso],[Locazione],[Posizione],[File],[Esecutore],[Data] From [Struttura: Archivio] where [ID]=" & valore1 & "", Cn, adOpenStatic, adLockOptimistic

    Set Me.Datagrid1.DataSource = rsRecordSet
    Call datagridformat

    End Sub


    FUNZIONA, clicco il pulsate metto ad esempio "16" e lui mi tira fuori il record con ID 16 quindi la query funziona

    A me questo non serve, a me server che mettendo il nome mi tira fuori i record che contengono con quel nome

    Modifico la query, e diventa:

    rsRecordSet.Open "SELECT [ID],[Nome Prodotto],[Descrizione],[Cod Articolo],[Cod Componente],[N° Disegno - Completo],[Documento],[N° Disegno - Prefisso],[Locazione],[Posizione],[File],[Esecutore],[Data] From [Struttura: Archivio] where [Nome Prodotto]=" & valore1 & "", Cn, adOpenStatic, adLockOptimistic

    Premo il pulsante metto un nome esistente, tipo ANTEO (è un nome di un prodotto) e lui va in errore, ma non capisco il motivo, se la query prima funzionava, ci deve essere un qualcosa che proprio non conosco.

    Errore di run-time '-2147217904 (80040e10)'
    Nessun valore specificato per alcuni parametri necessari

    Ciao e grazieeeeeeeee

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152
    Hai dimenticato gli apici a nome prodotto :

    "'" & nome & "'"

    Cia'

  3. #3

    Scusami

    Scusami cosi dici:

    ..... where ["'" & Nome prodotto & "'"]=]=" & valore1 & "

    Nome prodotto : è il nome del campo presente inm tabella

    Valore1 : è il valore che batto da tastiera

    Mi potresti scrivere la sintassi corretta cosi la provo

    Ciao e grazieeeeeeeeee

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152
    rsRecordSet.Open "SELECT [ID],[Nome Prodotto],[Descrizione],[Cod Articolo],[Cod Componente],[N° Disegno - Completo],[Documento],[N° Disegno - Prefisso],[Locazione],[Posizione],[File]
    ,[Esecutore],[Data] From [Struttura: Archivio] where [Nome Prodotto]='" & replace(valore1,"'","''") & "'", Cn, adOpenStatic, adLockOptimistic

    così !

    ti ho messo anche un filtrino sull'apice che potrebbe altrimenti darti problemi ...

    Cia'

  5. #5

    Grande

    Grandeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

    Funzionaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

    Visto che ci sei mi spieghi a cosa servirebbe & replace e gli apici che hai messo, cosi almeno imparo.

    Ciao e grazieeeeeeee

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    152
    Visto che a me nessuno risponde ... intanto aiuto te ...

    Allora in un DB access devi distinguere i campi numerici dai campi testo (anche data, sì/no). Con i numerici negli inserimenti (o updates) non devi metterci gli apici ( and camponumerico = 6 (e non '6')) con il testo devi fare : and campotesto = 'testo'. Questo per quanto riguarda apici o non.

    Per quanto riguarda il replace():

    Devi filtrare gli inserimenti di testo (tutti) per evitare errori se qualcuno scrive nel tuo form un apice " ' ". Inoltre questo ti consente di evitare la così detta SQL injection (se si scrive così ... documentati megio online su questo) . Quindi un apice doppio viene letto come singolo quando lo inserisci e per questo
    replace(strTesto,"'","''")

    per i numerici puoi filtrare così:

    if not isnumeric(Variabile) or Variabile ="" then errore = true

    Cia'


    edit: Variabile era varibile

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    Cosa c'entra [ASP] nel titolo?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8

    Non lo so

    Non lo so!!!!!!!!!!

    Eehhhhh

    Scusami, è che scrivendo nella barra del titolo, appena ho scritto [

    mi sono venuti fuori i messaggi vecchi quindi senza vedere al solo ho scelto una voce, ho ripulito il titolo senza il tag convinto che fosse [VB6]

    Correggilo tranquillamente

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.