Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    sql server e tabelle temporanee

    Ciao, ho il seguente problema : lancio da asp (via connessione ADO)una stored procedure (sql server 6.5) che crea una tabella temporanea per 'parcheggiare' i dati.

    L'esecuzione mi da l'errore :

    ADODB.Recordset error '800a0e78'
    Operation is not allowed when the object is closed

    E' senz'altro relativo alla tabella temporanea xkè se la tolgo l'errore sparisce.

    Qualcuno ha un'idea del motivo ?
    Ciao e grazie.
    Roby

  2. #2
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    facce vedè er codice
    Tutti vogliono parlare, nessuno sa ascoltare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    ecco er codice.....

    '''''''''''''''''''''''''''''''''
    LA PAGINA asp
    '''''''''''''''''''''''''''''''''
    <%
    Dim SQLConnection
    Dim RSDSQL
    Dim SQLcommand

    Set RSDSQL = Server.CreateObject("ADODB.Recordset")

    Set SQLConnection = Server.CreateObject("ADODB.Connection")
    Set SQLcommand = Server.CreateObject("ADODB.Command")

    SQLConnection.Open "Provider=SQLOLEDB.1;" & _
    "Data Source=SV2;" & _
    "Initial Catalog=acuDB;" & _
    "User Id=sa;" & _
    "Password="

    SQLcommand.ActiveConnection = SQLConnection
    SQLcommand.CommandText = "interrogaarrivi"
    SQLcommand.CommandType = adCmdStoredProc

    Set RSDSQL = SQLcommand.Execute

    Do While not RSDSQL.EOF
    ........................
    ........................
    ........................
    ........................

    %>

    '''''''''''''''''''''''''''''''''
    LA STORED PROCEDURE SQL SERVER ("interrogaarrivi")
    '''''''''''''''''''''''''''''''''

    CREATE PROCEDURE InterrogaArrivi AS

    SELECT convert(varchar(10),'R.D.A.') Tipo,
    convert(varchar(10),R.IdRDA) IdDocumento,
    convert(datetime,T.DataInserimento) DataInserimento,
    convert(int,R.NumeroRigaRDA) IdRiga,
    convert(varchar(15),R.IdArticolo) IdArticolo,
    convert(varchar(50),R.IdFornitoreEvasione+'-'+R.FornitoreEvasione) IdFornitore,
    convert(varchar(20),R.DataConsegna) DataConsegna,
    convert(int,R.Quantita) Quantita
    into #Tmp
    from RdaTestata T, RdaRiga R
    where T.IdRDA = R.IdRDA

    select *
    from #Tmp
    order by DataInserimento
    GO

    GRANT EXECUTE ON dbo.InterrogaArrivi TO public
    GO
    '''''''''''''''''''''''''''''''''
    il problema lo dà la SELECT .... INTO #Tmp ....

    Ciao.

    Roby

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    può essere un problema di permessi nel tempdb.

    crea una tabella temporanea esplicitamente dentro la SP
    poi la riempi e la distruggi alla fine

    create Table #tmp (campo1 int, campo2 nvarchar(50), ecc.......)

    in questo modo lavori all'interno del tuo db e se sei un utente dbowner dovresti farcela
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    gia fatto ma...

    ciao Gioba, grazie per le risposte innanzitutto.

    Ho già provato ciò che mi consigli ma senza risultato.

    Grazie.

  6. #6
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    verifica che l'utente di sql che usi sia dbowner su quel db.
    Tutti vogliono parlare, nessuno sa ascoltare.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90
    la stored procedure viene eseguita col 'solito' user 'DBO' che ha senz'altro i permessi necessari sul data base.
    Grazie.
    Roby.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2000
    Messaggi
    90

    trovato !!!

    Ho cambiato la connessione a sql server, invece di usare ADO con :

    SQLConnection.Open "Provider=SQLOLEDB;" & _
    "Data Source=" & ServerName & ";" & _
    "Initial Catalog=" & DatabaseName & ";" & _
    "User Id=user;" & _
    "Password="

    utilizzo la connessione :

    SQLConnection.mode = adModeRead
    SQLConnection.Open "Driver={SQL Server};" & _
    "Server=" & ServerName & ";" & _
    "Database=" & DatabaseName & ";" & _
    "Uid=user;" & _
    "Pwd=;"

    E il tutto funziona....
    Ciao e grazie.
    roby.

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.