Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: query su csv

  1. #1
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355

    query su csv

    Buongiorno... a tutti.

    Vorrei chiedere una informazione a voi luminari dell'asp.
    Ho provato a cercare qualcosa a riguardo ma non ho trovato nulla.

    La mia domanda è questa:

    Una volta stabilita una connessione (con stringa di connessione diretta) su un file .csv, è possibile effettuare una query per estrarre solo determinati dati?

    La query di estrazione dati totali ha funzionato
    strSQL = "SELECT * FROM nome_file.csv"

    ma se provo
    strSQL = SELECT * FROM nome_file.csv WHERE (((colonna1) Like '%135%'))

    non estrae nulla.

    Qualcuno sa come risolvere?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    il file CSV è di sua natura un file, anche su ODBC tramite (Text File Driver) (Microsoft Open Database Connectivity (ODBC)) riesce a gestirlo, ti rimarrà più semplice aprirlo, importarlo dentro un DB e poi fare le tue query, lo dico perché ci ho sbattuto la testa tempo fa...


    d

  3. #3
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    mi trovo in questa situazione perchè non sono riuscito a realizzare lo script che aprisse e mi consentisse di importare il csv nel DB

  4. #4
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    posta il codice con cui hai aperto il file csv, sono curioso...

    Cmq essendo il file CSV un file di testo separato da virgole, credo che con 7 linee di codice lo apri e cicli linea per riga, poi fai uno split per "," e tramite un INSERT lo metti in una tabella temporanea...doè che ti areni?

    d

  5. #5
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    Codice PHP:
    <%
      
      
    set objconn Server.CreateObject("ADODB.Connection")
      
    objconn.Provider="Microsoft.Jet.OLEDB.4.0"
      
    objconn.Open Server.MapPath("csv.mdb")


      
    mioFileCSV="test_csv.csv"
      
    set fso createobject("scripting.filesystemobject")
      
    set act fso.opentextfile(server.mappath(mioFileCSV),1,False)

      
    dim sline
      dim sSeg
      
      
    Do Until act.AtEndOfStream
      
      sline
    =act.readline
      sSeg
    =split(sline,","'Qui vedi un po tu come dividerlo

      dim strsql
      strsql="INSERT INTO CSV (IDTab, Nome, Indirizzo, Tel)"
      strsql=strsql & "VALUES('"&sSeg(0)&"', '"&sSeg(1)&"', 
      '"&sSeg(2)"', '"&sSeg(3)&"')"

      objconn.execute strsql
         
      loop
      act.close
      set act=nothing
       
      objconn.close
      set objconn=nothing
    %> 

  6. #6
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath&(".") & ";Extended Properties=""text;HDR=Yes;FMT=Delimited()"""
    set cn = Server.CreateObject("ADODB.Connection")
    cn.Open strConn
    <%
    set rs = Cn.Execute("SELECT * FROM nome_file.csv")
    .....

  7. #7
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    hai creato il file schema.ini?

    http://www.connectionstrings.com/?carrier=textfile

    http://www.microsoft.com/technet/scr...6/hey0504.mspx

    Hai provato con una clausola WHERE più semplice? tipo colonna1='pippo' oppure colonna1="pippo"

    Non vorrei che il % non fosse riconosciuto come in Access...

  8. #8
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    allora:

    si, ho usato il file schema.ini.

    Ho anche provato i tuoi suggerimenti per le query ma:

    se uso = mi da errore nel criterio query.


    Sto anche provando con l'importazione nel db e, grazie al tuo validissimo aiuto, qualcosa si muove .

    Ho importato il csv nel db ma la prima riga che importa corrisponde ai titoli delle colonne.

    Come evitare la sua importazione?
    e sopra tutto: l'importazione funziona anche se ci sono caratteri accentati o apostrofi? o devo prevedere dei controlli?

    grazie per l'aiuto iceblu

  9. #9
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    metti
    i= 0 prima del ciclo Do Until act.AtEndOfStream

    e alla prima riga metti

    if i>0 then

    prima di loop metti

    end if
    i= i +1

  10. #10
    Utente di HTML.it L'avatar di Yuppies
    Registrato dal
    Apr 2007
    Messaggi
    355
    mi spiace ma .... non va

    non capisco la logica:
    ritardo il ciclo di 1 ma poi non cambia nulla

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.