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

    eliminare record e immaggini dalla cartella in remoto

    Salve a tutti
    Ho una funzione delete che elimima il record e l'immagine associata della certella in remoto...
    codice:
    <% 
    ' *** Delete File Before Delete Record 1.6.0
    If (CStr(Request("MM_delete")) <> "" And CStr(Request("MM_recordId")) <> "") Then
      Dim DF_filesStr, DF_path, DF_suffix
      DF_filesStr = "PIC_FILE"
      DF_path = strPublicPath
      DF_suffix = "_small"
      DeleteFileBeforeRecord DF_filesStr,DF_path,MM_editConnection,MM_editTable,MM_editColumn,MM_recordId,DF_suffix
    end if
    %>
    adesso ho inserito nuovi campi nel db
    PICFILE1 e PICFILE2 in cui sono inserite altre 2 immagini

    ho provato a modificare lo script in questo modo:

    codice:
    <% 
    ' *** Delete File Before Delete Record 1.6.0
    If (CStr(Request("MM_delete")) <> "" And CStr(Request("MM_recordId")) <> "") Then
      Dim DF_filesStr, DF_filesStr2, DF_path, DF_suffix
      DF_filesStr = "PIC_FILE"
      DF_filesStr2 = "PIC_FILE1"
      DF_path = strPublicPath
      DF_suffix = "_small"
      DeleteFileBeforeRecord DF_filesStr,DF_filesStr2,DF_path,MM_editConnection,MM_editTable,MM_editColumn,MM_recordId,DF_suffix
    end if
    %>
    ma mi restituisce questo errore:

    Microsoft VBScript runtime error '800a01c2'
    Wrong number of arguments or invalid property assignment: 'DeleteFileBeforeRecord'
    /admin/pictures_delete.asp, line 71

    line71 = DF_filesStr,DF_filesStr2,DF_path,MM_editConnection ,MM_editTable,MM_editColumn,MM_recordId,DF_suffix

    Qualche idea?
    è la strada giusta o posso dichiarare l'eliminazione diversamente??

    Grazie a tutti
    Scusate sto imparando!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La strada è giusta ma devi inserire gli altri due parametri anche nella funzione vera e propria, non solo quando la richiami.

    Te lo dice: "Wrong number of arguments"

    Roby

  3. #3
    Ok Roby, ho trovato la funzione...
    ho modificato i primi 2 pamrametri e mi sono bloccato alla costruzione dell'array

    codice:
    Sub DeleteFileBeforeRecord(DF_filesStr,DF_filesStr2,DF_path,MM_editConnection,MM_editTable,MM_editColumn,MM_recordId,DF_suffix)
      if DF_path <> "" and right(DF_path,1) <> "/" then DF_path = DF_path & "/"
      Dim DF_fso, DF_files, DF_filesArr, DF_file, DF_fullFile
      Set DF_fso = CreateObject("Scripting.FileSystemObject")
      set DF_files = Server.CreateObject("ADODB.Recordset")
      DF_files.ActiveConnection = MM_editConnection
      DF_files.Source = "SELECT " & DF_filesStr & " AND " & DF_filesStr2 & "  FROM " & MM_editTable & " WHERE " & MM_editColumn & " IN (" & MM_recordId & ")"
      DF_files.CursorType = 0
      DF_files.CursorLocation = 2
      DF_files.LockType = 3
      DF_files.Open()
    ** original**  DF_filesArr = split(DF_filesStr,",")
    ** errore**  DF_filesArr = split(DF_filesStr,DF_filesStr2,",")
      while not DF_files.EOF
        for DF_fi = 0 to UBOUND(DF_filesArr)
          DF_file = Trim(DF_files.Fields.Item(Trim(DF_filesArr(DF_fi))).Value&"")
          if DF_file <> "" then
            DF_fullFile = Server.MapPath(DF_path & DF_file)
            if DF_fso.FileExists(DF_fullFile) then
              DF_fso.DeleteFile(DF_fullFile)
            end if
            if DF_suffix <> "" then
              DF_fullFile = Server.MapPath(DF_path & getThumbnailName(DF_suffix,DF_file))
              if DF_fso.FileExists(DF_fullFile) then
                DF_fso.DeleteFile(DF_fullFile)
              end if
            end if
          end if
        next
        DF_files.MoveNext()
      wend
      DF_files.Close()
    End Sub
    come me la cavo li?

    Grazie
    Scusate sto imparando!

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    In realtà la variabile originaria "DF_filesStr" può contenere i nomi di tutti i file, perché l'array della funzione li recupera tutti.
    Bisognerebbe provare a passare a quella variabile i tre file separati da virgola:

    DF_filesStr = "PIC_FILE,PIC_FILE1,PIC_FILE2"

    Roby

  5. #5
    Quindi?
    tutto quello fatto e stao inutile?
    devo tornare alla base...

    Un esempio pratico è possibile
    Scusate sto imparando!

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Te l'ho fatto l'esempio.
    Devi solo far sì che la variabile contenga i nomi dei tre file come ti ho scritto senza aggiungere altri elementi alla funzione e alla sua chiamata.
    Prova.

    Roby

  7. #7
    Allora..
    Sono tornato alle pagine originali
    * tuo consiglio
    ** riga di errore

    codice:
    If (CStr(Request("MM_delete")) <> "" And CStr(Request("MM_recordId")) <> "") Then
      Dim DF_filesStr, DF_path, DF_suffix
     * DF_filesStr = "PIC_FILE,PICFILE1"
      DF_path = strPublicPath
      DF_suffix = "_small"
      DeleteFileBeforeRecord DF_filesStr,DF_path,MM_editConnection,MM_editTable,MM_editColumn,MM_recordId,DF_suffix
    end if
    pagina con funzione e con l'errore

    codice:
    Sub DeleteFileBeforeRecord(DF_filesStr,DF_path,MM_editConnection,MM_editTable,MM_editColumn,MM_recordId,DF_suffix)
      if DF_path <> "" and right(DF_path,1) <> "/" then DF_path = DF_path & "/"
      Dim DF_fso, DF_files, DF_filesArr, DF_file, DF_fullFile
      Set DF_fso = CreateObject("Scripting.FileSystemObject")
      set DF_files = Server.CreateObject("ADODB.Recordset")
      DF_files.ActiveConnection = MM_editConnection
      DF_files.Source = "SELECT " & DF_filesStr & " FROM " & MM_editTable & " WHERE " & MM_editColumn & " IN (" & MM_recordId & ")"
      DF_files.CursorType = 0
      DF_files.CursorLocation = 2
      DF_files.LockType = 3
    **  DF_files.Open()
      DF_filesArr = split(DF_filesStr,",")
      while not DF_files.EOF
        for DF_fi = 0 to UBOUND(DF_filesArr)
          DF_file = Trim(DF_files.Fields.Item(Trim(DF_filesArr(DF_fi))).Value&"")
          if DF_file <> "" then
            DF_fullFile = Server.MapPath(DF_path & DF_file)
            if DF_fso.FileExists(DF_fullFile) then
              DF_fso.DeleteFile(DF_fullFile)	 
            end if	
            if DF_suffix <> "" then
              DF_fullFile = Server.MapPath(DF_path & getThumbnailName(DF_suffix,DF_file))
              if DF_fso.FileExists(DF_fullFile) then
                DF_fso.DeleteFile(DF_fullFile)	 
              end if
            end if
          end if  
        next
        DF_files.MoveNext()
      wend
      DF_files.Close()
    End Sub
    sembra nn andare
    ecco l'errore scusa

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
    /ScriptLibrary/incPUAddOn.asp, line 18
    Scusate sto imparando!

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi farti stampare la query:
    codice:
      DF_files.Source = "SELECT " & DF_filesStr & " FROM " & MM_editTable & " WHERE " & MM_editColumn & " IN (" & MM_recordId & ")"
    sql = "SELECT " & DF_filesStr & " FROM " & MM_editTable & " WHERE " & MM_editColumn & " IN (" & MM_recordId & ")"
    response.write sql
    response.end

  9. #9
    Ecco cosa fa la select

    SELECT PIC_FILE,PICFILE1 FROM PICTURES WHERE PIC_ID IN (193)

    Nel db, nella tabella PICTURES esiste il record 193 con rispettive foto
    Scusate sto imparando!

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questi due campi esistono?!!?!?!
    Il secondo forse no... quindi devi agire di conseguenza:

    PIC_FILE,PICFILE1

    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.