Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580

    [vb6] problema esecuzione SP

    buongiorno
    ho una SP in sqlServer, la quale provandola con dei valori fissi mi da un risultato: X
    provando la stessa SP da VBA con gli stessi risultati mi da un risultato diverso

    ecco la SP
    codice:
    ALTER PROCEDURE dbo.CheckIsXXXXXX 
                @cap as nvarchar(50),
                @CTD as varchar(4),
                @objectType as int

    ecco il codice VB6

    codice:
      Dim RS As New ADODB.Recordset
        Dim CON As New ADODB.Connection
        CON.Open "Provider=SQLNCLI;Server=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;"
        
        Dim cmdTemp As New ADODB.Command
        Set cmdTemp.ActiveConnection = CON
        
        cmdTemp.Parameters.Append cmdTemp.CreateParameter("@objectType", adInteger, adParamInput, , 0)
        cmdTemp.Parameters.Append cmdTemp.CreateParameter("@CTD", adVarChar, adParamInput, 4, codice)
        cmdTemp.Parameters.Append cmdTemp.CreateParameter("@cap", adVarChar, adParamInput, 50, cap)
        
        cmdTemp.CommandType = adCmdStoredProc
        cmdTemp.CommandText = "CheckIsXXXXXX"
        Set RS = cmdTemp.Execute '
    
    If RS("valido") <> "Si" Then
     CON.Close
        fatal ("mi aspettavo si")
    End If
     CON.Close
    come potete notare ,
    ho rispettato tutti i parametri
    solo il tipo di parametro di @CAP in vb6 non c'è Nvarchar e lo ho impostato a adVarchar
    ma non penso che sia questo il problema in quanto i dati inviati
    sono: "2000" per il CTD ,"04019" per il cap, 0 per objectType sto impazzendo
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il campo "valido" è una stringa? Oppure, come penso, è un boolean? In questo caso non ha senso confrontarlo con la stringa "Sì" ma solo con true / false oppure 1// 0
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma il campo "valido" è una stringa? Oppure, come penso, è un boolean? In questo caso non ha senso confrontarlo con la stringa "Sì" ma solo con true / false oppure 1// 0
    è una stringa, e ritorna appunto: "Si" e "No"
    attualmente mi ritorna sempre "No" anche se i parametri sono identici che provo qui e direttamente in sqlServer

    in effetti nella SP, non viene dichiarata la variabile Valido, ma impostata come un alias
    codice:
    SELECT  CASE @objectType  
    			WHEN 0 THEN 
    			WHEN 1 THEN 
    			WHEN 2 THEN 
    		END AS TipoOggetto,	
    	 
    		CASE @VALID_XXXXX 
    			WHEN 1 THEN 'Si' ELSE 'No' 
    		END as Valido;
    Ultima modifica di Kahm; 13-03-2014 a 13:15
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    se hai possibilità di mettere mano alla SP, scrivi in una tabella di log i parametri ricevuti, così escludiamo che sia un problema di passaggio di parametri

  5. #5
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    Quote Originariamente inviata da optime Visualizza il messaggio
    se hai possibilità di mettere mano alla SP, scrivi in una tabella di log i parametri ricevuti, così escludiamo che sia un problema di passaggio di parametri

    si trovato l'arcano mistero
    mi scambia il CTD con objectType
    eppure i parametri li mando bene

    e eseguendo su SQLserver va tutto been
    Ultima modifica di Kahm; 13-03-2014 a 13:28
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  6. #6
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    OK RISOLTO
    ho scambiato la posizione

    cmdTemp.Parameters.Append cmdTemp.CreateParameter("@cap", adVarChar, adParamInput, 50, cap)
    cmdTemp.Parameters.Append cmdTemp.CreateParameter("@CTD", adVarChar, adParamInput, 4, codice)
    cmdTemp.Parameters.Append cmdTemp.CreateParameter("@objectType", adInteger, adParamInput, , 0)
    incredibile!!!!!!! proprio non capisco!!
    GRZIE A TUTTI PER IL SUGGERIMENTO
    senza il vostro aiuto sarei ancora a sbattermi i maroni
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  7. #7

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.