Estrazione dati da 2 tabelle non relazionate

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Salve a tutti ragazzi....
sto cercando di visualizzare in una singola pagina i dati provenienti da due tabelle differenti NON relazionate.
Avevo provato così:

<%
richiesta=request.QueryString("id")

query_impresa="SELECT * FROM TBL_IMPRESA WHERE piva='"+session("piva")+"'"
query_dati="SELECT Ente, Oggetto, protocollo, scadenza FROM TBL_BANDI_GARA WHERE id='"+richiesta+"'"

Set conn = Server.CreateObject("ADODB.Connection")
strConnection = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"
conn.Open strConnection

set rs = con.execute(query_impresa) QUESTA E' LA LINEA 214 DELL'ERRORE
set rsc = con.execute(query_dati)
%>

Ma aprendo la pagina ricevo questo errore:

Microsoft VBScript runtime error '800a01a8'
Object required: ''
/form/richiesta.asp, line 214


Dov'è che sbaglio??? Qualcuno può aiutarmi???
Grazie a tutti...
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Cosa vuol dire "estrarre dati da tabelle NON relazionate"? Se non c'è una relazione, qual'è lo scopo logico?

In ogni caso, vedo che usi + invece di & e si tratta di VBScript, non di JScript.
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Ciao e innanzitutto grazie della risposta.
Ti spiego subito il perchè le tabelle non sono relazionate; il sito è quello dell'agenzia per cui lavoro. I clienti effettuano il login ed accedono all'area servizi. Da qui è possibile selezionare uno dei tanti servizi a disposizione ed inviare a noi una richiesta di preventivo per quel servizio specifico tramite un apposito form. Il form prevede una parte da compilare con i dati dell'azienda ed un'altra con i dati del servizio richiesto. I dati del cliente e quelli del servizio sono contenuti in due tabelle differenti che non hanno motivo di essere relazionate. La mia richiesta nasce dal voler semplificare e velocizzare al max le operazioni dei clienti. Vorrei che il form legga automaticamente i dati del cliente e quelli del servizio, in pratica appaia già compilato. Sono riuscito tranquillamente ad estrapolare i dati del servizio (utilizzando un normale SELECT), ma ora che devo estrarre da due tabelle differenti mi sono bloccato, in quanto come hai potuto notare non sono un grande esperto di ASP.
Spero di essere stato chiaro e che mi puoi aiutare.
Grazie......
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Devi scusarmi, ma non concordo quando dici che nn c'è motivo che i dati siano relazionati: se l'admin della tua agenzia vuole leggere un preventivo, sapere di che si tratta e di chi lo ha richiesto, come fa a sapere CHI VUOLE COSA se le tabelle non sono relazionate?

In sostanza, la tabella dei preventivi dovrebbe contenere un ID di riferimento dell'utente che l'ha richiesto.

Oppure non ho capito, ma dubito :)
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Non hai capito bene, ma è colpa mia in quanto non ho esplicato al 100% la situazione.
Non esiste nessuna tabella preventivi. Il form che deve apparire precompilato deve prendere i dati da due tabelle, che sono quella dei dati dei clienti e quella dei dati del servizio; questo form poi non inserisce i dati da nessuna parte, bensì ce li invia via mail........
Scusami se avevo omesso questo dettaglio :)
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
Ah ok, anche se non mi piace come sistema, adesso mi è chiaro!

Quindi il problema è creare due query su due tabelle diverse?

Dunque, dato l'ogetto RS (ADODB.Recordset) e l'oggetto CN (ADODB.Connection), scrivi una cosa del genere:

<form ...>
<%
rs.Open "SELECT * FROM tabella_1", cn, 1
%>
<input type="text" ... vaue="<%=rs("campo")%>">
<%
rs.Close
rs.Open "SELECT * FROM tabella_2", cn, 1
%>
<input type="text" ... vaue="<%=rs("campo")%>">
<%
rs.Close
%>
</form>

Mi spiego?

Fammi sapere ;)
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Ciao e grazie mille per la risposta innanzitutto.....:)
Dunque ho fatto come mi hai detto, o meglio ho cercato con le mie scarse conoscenze di fare come mi hai detto. In pratica mi sono collegato così al DB:

<%
richiesta=request.QueryString("id")

strConnection = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"

Set cn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

%>

Poi nel form, come mi hai indicato, ho cercato di eseguire il primo recordset così:

<% rs.Open "SELECT * FROM TBL_IMPRESA WHERE piva='"+session("piva")+"'", cn, 1%>

ed il secondo così:

<% rs.Open "SELECT FROM TBL_BANDI_GARA WHERE id='"+richiesta+"'", cn, 1%>

Ovviamente entrambi sono accompagnati da <% rs.Close %>

Quando carica la pagina però ricevo il seguente errore:

ADODB.Recordset error '800a0e7d'
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
/form/richiesta.asp, line 219

La riga 219 è quella del primo rs.Open.....

Scusa se rompo ma vorrei uscirne da sta cosa qua e da solo proprio non riesco.....:confused:
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Sei gentilissimo....

Ho provato ma niente, sempre lo stesso errore......:incazz2::incazz2:
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Si giusto, uso Microsoft SQL Server...

Riguardo ad Access, attualmente non c'è nessun DB e sarebbe complesso effettuare una prova completa in quanto, come ti ho spiegato i dati devono essere estratti da 2 tabelle differenti ma soprattutto a questo form di richiesta si accede dopo aver effettuato un login, login dalla cui sessione si recuperano parte degli stessi dati mentre i restanti dati vengono recuperati tramite un request.QueryString proveniente dalla pagina precedente......insomma ci sarebbe da modificare un casino di cose.

Comunque posso creare un db Access provando ad estrarre semplicemente dei dati lasciando stare discorsi di sessioni e id.....
Mi metto subito al lavoro e ti faccio sapere.....
 

lukeonweb

Utente Attivo
5 Mar 2003
5.177
10
38
43
Napoli
www.lucaruggiero.it
MA CHE FESSI CHE SIAMO (sono), hai usato sempre la stessa stringa di connessione... quindi, ricapitolando, devi usare sempre RS come recordset, ma associarlo NON a CN, ma (ad esempio) CN1 e CN2.

Riprendo il mio codice:

<form ...>
<%
rs.Open "SELECT * FROM tabella_1", cn1, 1
%>
<input type="text" ... vaue="<%=rs("campo")%>">
<%
rs.Close
rs.Open "SELECT * FROM tabella_2", cn2, 1
%>
<input type="text" ... vaue="<%=rs("campo")%>">
<%
rs.Close
%>
</form>

Noti la differenza con l'altro esempio?

Devi creare un doppio oggetto Connection (CN1 e CN2, appunto) ed usare uno per un Recordset ed uno per l'altro (l'RS, ripeto, può anche sessere lo stesso).

Fammi sapere.
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Se c'è un fesso sono io che non ne vengo fuori solo, tu sei uno con tanta pazienza, oltre che competente naturalmente.....:fonzie:
Allora con Access ricevevo lo stesso errore, segno che il problema da te indicato dell'unica connessione era giusto. Ora ho corretto così:

Set cn1 = Server.CreateObject("ADODB.Connection")
Set cn2 = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")

ed ho impostato come mi hai suggerito su un recordset cn1 e sull'altro cn2
e ricevo questo errore:

ADODB.Recordset error '800a0e7d'
The connection cannot be used to perform this operation. It is either closed or invalid in this context.
/form/richiesta.asp, line 220

dove la linea 220 è il primo recordset. Te li scrivo tutti e 2 comunque per sicurezza:

<% rs.Open "SELECT * FROM TBL_IMPRESA WHERE piva='"+session("piva")+"'", cn1, 1%>

<% rs.Open "SELECT FROM TBL_BANDI_GARA WHERE id='"+richiesta+"'", cn2, 1%>

Almeno è cambiato l'errore e dunque un problema è stato risolto; spero tu abbia il tempo e la pazienza per continuare ad aiutarmi:crying:
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Scusa hai ragione, non sto postando il codice intero della pagina in quanto essendo una pagina con una tabella molto lunga c'è un html kilometrico......
Dunque mi connetto al DB così:
<%
richiesta=request.QueryString("id")

strConnection = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"

Set cn1 = Server.CreateObject("ADODB.Connection")
Set cn2 = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
%>

poi abbiamo il primo recordset:
<form ....>
<% rs.Open "SELECT * FROM TBL_IMPRESA WHERE piva='"+session("piva")+"'", cn1, 1%>

<input type="text" ... vaue="<%=rs("campo")%>">

e la chiusura:
<% rs.Close %>

Poi il secondo recordset che apro così:
<% rs.Open "SELECT FROM TBL_BANDI_GARA WHERE id='"+richiesta+"'", cn2, 1%>

<input type="text" ... vaue="<%=rs("campo")%>">

e la seconda chiusura:
<% rs.Close %>

Di altro come codice non c'è nulla, è tutto HTML.....
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Cacchio in effetti hai ragione, non aprivo da nessuna parte la connessione. Ho aggiunto l'apertura delle connessioni così:

<%
richiesta=request.QueryString("id")

strConnection = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"

Set cn1 = Server.CreateObject("ADODB.Connection")
cn1.Open strConnection
Set cn2 = Server.CreateObject("ADODB.Connection")
cn2.Open strConnection
Set rs = Server.CreateObject("ADODB.Recordset")
%>

e dopo ogni <% rs.Close %> ho aggiunto rispettivamente <% cn1.Close %> e <% cn2.Close %>

Ora succede questo: la parte della tabella racchiusa nel primo rs.Open, cioè

<% rs.Open "SELECT * FROM TBL_IMPRESA WHERE piva='"+session("piva")+"'", cn1, 1%>

appare correttamente, mentre di seguito a questa parte invece che il resto della tabella visualizzo il seguente errore:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
ODBC driver does not support the requested properties.
/php/form/formRitiroDocumentiGara.asp, line 282

In pratica va in errore al secondo rs.Open cioè

<% rs.Open "SELECT FROM TBL_BANDI_GARA WHERE id='"+richiesta+"'", cn2, 1%>

Chissà, forse ci siamo quasi......
 

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Scuse se faccio casino, ma sono poco pratico......:confused::confused::confused:
In ke senso due stringhe, il Database è uno solo......:crying::crying::crying:

O dovrei fare una cosa del genere:

<%
strConnection = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"
Set cn1 = Server.CreateObject("ADODB.Connection")
cn1.Open strConnection

strConnection2 = "Driver={SQL Server};Server=xx.xxx.xxx.xx;Database=MSSqlxxxxx;Uid=MSSqlxxxxx;Pwd=xxxxxxxx;"
Set cn2 = Server.CreateObject("ADODB.Connection")
cn2.Open strConnection2

Set rs = Server.CreateObject("ADODB.Recordset")
%>

ma anche così non va....
 
Discussioni simili
Autore Titolo Forum Risposte Data
M problema con estrazione dati da più tabelle MySQL 1
E Progressbar estrazione dati da tabella mySQL Ajax 9
L Estrazione dati php Database 6
L Estrazione dati casuali non doppioni MySQL 1
D Chiave unica in estrazione dati da array php PHP 0
ronny1710 Estrazione Dati Tessera Sanitaria .NET Framework 1
creatorweb [PHP] estrazione ciclica dati con 2 dati alla volta PHP 2
Gigi87 [PHP] Estrazione dati da forum o da social network PHP 1
L estrazione dati da mysql in php e salvataggio in cartella del server PHP 51
E [PHP] estrazione dati in modo non continuativo PHP 1
C Estrazione Dati da Pagine Gialle PHP 0
A Estrazione dati da tabella sql MySQL 27
T Codice per estrazione dati da db PHP 4
L estrazione dati per login PHP 0
W Estrazione dati da DB PHP 20
L Estrazione dati per settimana. PHP 13
L estrazione dati e immagini in contemporanea PHP 4
M estrazione dati casuali da database Database 0
C [PHP][MY SQL] - Estrazione dati database tramite form PHP 8
G estrazione dati da DB tramite PHP errore time out PHP 2
B Estrazione dati utente loggato MySQL 1
W Estrazione dati DB da lista MySQL 1
M Connessione Database ed estrazione dati Javascript 6
A [risolto] Istruzione per estrazione di dati casuali dal db PHP 25
B Estrazione dati Classic ASP 3
U Estrazione dati da un db con un menu selezione in cascata PHP 6
Sargon estrazione dati PHP 17
A Estrazione dati da file.html PHP 8
G estrazione dati da xml ed inserimento in db PHP 0
P Menu a discesa con estrazione dati da datbase mysql PHP 21
A problema: estrazione dati da query mysql e assegnazione ad una variabile PHP 2
L Estrazione dati PHP 32
M caratteri speciali ed estrazione dati Database 4
R Aiuto estrazione dati Database 0
G estrazione dati da più record in un solo nuovo campo Database 0
E Difficile estrazione dati da tabella PHP 3
L Estrazione valori max su più campi MySQL 4
M [PHP] Estrazione random con nomi presi dal db PHP 22
gandalf1959 Estrazione e visualizzazione del simbolo dell'euro php/mysqli PHP 0
F Estrazione Email di persone selezionate e attive / facebook + invio di massa! Annunci servizi di Social Media Marketing 0
V Estrazione di una singola banda da file multi banda (RGB) con Python Programmazione 0
O [PHP] problema estrazione immagine da db PHP 12
V [PHP] Estrazione con SQL PHP 1
M [MS Access] Estrazione record multipli MS Access 1
S [PHP] estrazione dal DB complicata PHP 7
asevenx [Javascript] Estrazione dal database di un valore in base ad una scelta Javascript 7
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
P Probelma estrazione stringa PHP 5
L Estrazione Articoli Random da Tabella senza doppioni PHP 1
gandalf1959 Estrazione di un singolo dato da una ricerca mysql PHP 1

Discussioni simili