Newsgroup: it.comp.appl.access
Titolo: Salvare query

Salve,
non sò se sono nel posto giusto ma ho un problema.
E' possibile in asp fare la seguente procedura (e se si come):
Dim QRY_DEF As QueryDef
MSG="SELECT * FROM TABELLA WHERE NOME='PIPPO'"
NOME_QRY = "01_FSC_CI"
Set QRY_DEF = CurrentDb.QueryDefs(NOME_QRY)
QRY_DEF.SQL = MSG
Set QRY_DEF = Nothing
Grazie in anticipo per l'aiuto

 ha scritto nel messaggio 
news:1151041022.8...@c74g2000cwc.googlegroups.com...
Salve,
non sň se sono nel posto giusto ma ho un problema.



Set QRY_DEF = Nothing

[risposta]
Se ho capito quello che vuoi fare č una query "al volo"; se č cosě prova 
con:
'---
dim strConnessione, pathMdb, nomeMdb
pathMdb = "./database/"
nomeMdb = "nomeFile.mdb"
strConnessione = "driver={Microsoft Access Driver (*.mdb)};dbq="  & 
server.MapPath(pathMdb & nomeMdb) & ";"
dim oConn, strSQL, rst
set oConn = Server.Createobject("ADODB.CONNECTION")
oConn.Open strConnessione
strSQL = "SELECT * FROM TABELLA WHERE NOME='PIPPO';"
set rst = oConn.Execute(strSQL)
...bla bla
set rst = nothing
set oConn = nothing
'---
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
Avevo lo stesso dubbio, ma rileggendo mi pareva volesse proprio
modificare lo statement
SQL della Query via codice..., cosa che personalmente in ASP non trovo
molto sensato...!
Opterei anch'io per una Query al volo come hai suggerito, ma rimando
all'autore.....
@Alex

 molto sensato...!
Non sapevo si potesse fare. ASP non usa ADO?
--
ac

 ac
A naso potrebbe anche darsi; referenziando DAO potresti(?)... Boh! Ma a che 
pro?
Ciao.
-- 
Sergio MAZZA 

forso ho formulato male la domanda:
la query finale legge una serie di query (compresa una di unione); se
riesco a variare il codice sql della prima query la query finale mi da
il risultato adatto ...


"Anfatti", non mi sono mai posto il problema anche se, come mi capita di 
fare in access, spesso leggo l'sql dalla querydef e la cambio, ma solo 
per eseguirla al momento. Per quanto riguarda DAO non so se e' 
"visibile" da IIS e poiche', al tempo, la letteratura diceva che 
bisognava usare ADO, pur non capendo, mi sono adeguato.
--
ac

 ha scritto nel messaggio 
news:1151070762.4...@y41g2000cwy.googlegroups.com...

Anche ora non è molto chiaro; secondo la mia sfera di cristallo tu hai una 
sequenza di query in access e la stessa sequenza la vorresti riportare su 
web.
Se c'ho azzeccato, a mio parere, non è il metodo giusto; bisogna ripensarlo 
anche nella prospettiva web.
Magari se ci descrivi per filo e per segno che hai e che vuoi fare, forse 
una indicazione ti si può dare...
Ciao.
-- 
Sergio MAZZA 

 ac
Eh! Eh!
Detto in parole povere: attacco l'asino dove vuole il padrone...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio
news:1151070762.4...@y41g2000cwy.googlegroups.com...

Riprendendo parte del codice di Sergio
----
dim oConn, strSQL, rst
set oConn = Server.Createobject("ADODB.CONNECTION")
strSQL="CREATE PROCEDURE [01_FSC_CI] AS SELECT * FROM TABELLA WHERE
NOME='PIPPO'"
oConn.Execute strSQL
----
se la query è già esistente, puoi cancellarla con
----
strsql="DROP PROCEDURE [01_FSC_CI]"
oConn.Execute strSQL
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

ho provato con:
<%
apri="/mdb-database/risultati.mdb"
Set dbConn= Server.CreateObject("ADODB.Connection")
dbConn.Open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&
Server.MapPath(apri)
newSQL="CREATE PROCEDURE QRY1 AS SELECT * FROM Campionati WHERE
CAMPIONATO='SERIE C1'"
dbConn.Execute newSQL
%>
ma ho questo errore:
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi
nell'istruzione CREATE TABLE.
preciso che QRY1 esiste; ho quindi provato ad eliminare la QRY
<%
newSQL="DROP PROCEDURE QRY1"
dbConn.Execute newSQL
%>
ma non funzia ... dove sbaglio?

 ha scritto nel messaggio
news:1151131737.7...@g10g2000cwb.googlegroups.com...

Ciao Roberto,
L'istruzione CREATE/DROP PROCEDURE sono interpretare correttamente dal
provider OLEDB, tu invece apri la connessione al server con il provider
ODBC.
Apri la connessione con il provider OLEDB
----
dbConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath(apri)


Grazie Giorgio funziona tutto alla perfezione !!!
Ti chiedo solo un ultima cosa.
Creo la query "PIPPO".
Se apro "PIPPO" via ASP nessun problema.
Aprendo il database con Access però non la vedo da nessuna parte
(anche abilitando gli oggetti nascosti e di sistema).
Se però cerco di creare una nuova query e la chiamo "PIPPO" Access mi
dice:
Il nome immesso esiste già per un altro oggetto dello stesso tipo ...
Cosa vuol dire?

Cosa vuol dire?
Ciao Roberto,
Probabilmente hai Access2000.
Da AccessXp in avanti la query si vede, se al contrario hai Access2000
allora non puoi vederla.
Visto che da Acc2000 che si possono creare le query da codice SQL
----
Description of the new features that are included in Microsoft Jet 4.0
http://support.microsoft.com/default.aspx?scid=kb;en-us;275561
----
credo proprio che la mancata visualizzazione nella relativa finestra sia un
bug di quella versione.


 ha scritto nel
messaggio news:449e6066$0$9620$5fc...@news.tiscali.it...
dimenticato...
Il fatto di non vedere la query  nella mascherina di Acc2000, non influisce
sul buon funzionamento.
La query c'è, ma non si vede. :-)


 ha scritto nel messaggio
news:1151221369.2...@b68g2000cwa.googlegroups.com...
Grazie Giorgio funziona tutto alla perfezione !!!
[CUT]
ok, ora però dovresti chiederti se questa è la strada corretta per
raggiungere il tuo risultato.
Questa cosa la usi solo tu o tutti gli utenti possono modificare la query
nello stesso momento ?


in realtà non ho ancora deciso qual'è la strada migliore per
risolvere il problema.
Query su query (specialmente multiple) rallentano un casino; l'opzione
due sarebbe creare una tabella d'appoggio e copiarci i dati che servono
... ma anche così non è che si velocizza molto ...

scusa, non ho risposto.
serve ad uso del webmaster, precisamente per calcolare la classifica
avulsa.

 avulsa.
allora on ci sono problemi :-)
