Carica DB... mi sono arenato !!!

satwanted

Nuovo Utente
7 Apr 2006
6
0
0
Salve a tutti, sto cercando di realizzare uno script che mi inserisce/aggiorna record in un database.
Ovvero arriva il db aggiornato e lo script

AGGIORNA gli articoli gia presenti sul database (COD = COD)

INSERISCE in una tabella i record che non sono stati aggiornati

mi date una mano per farlo funzionare......


<%

Dim i, SQL, SEL, RSsel, esterno, importare, Codice, Descrizione, DescEstesa, PrezzoListino, PrezzoRivenditore, PrezzoPromo, NomeCasaProd, Fam, DescFam, Sconto, DataPromoDa, Arrivi, DISPO, Stato


SEL = " SELECT * FROM dispo "
Set RSsel = Conn3.Execute(SEL)


Codice = RSsel("Codice")
Descrizione = RSsel("Descrizione")
DescEstesa = RSsel("DescEstesa")
NomeCasaProd = RSsel("NomeCasaProd")
Fam = RSsel("Fam")
DescFam = RSsel("DescFam")
Sconto = RSsel("Sconto")
DataPromoDa = RSsel("DataPromoDa")
Arrivi = RSsel("Arrivi")
DISPO = RSsel("DISPO")
Stato = RSsel("Stato")
PrezzoListino = Replace(RSsel("PrezzoListino"), ",", ".")
PrezzoRivenditore = Replace(RSsel("PrezzoRivenditore"), ",", ".")
PrezzoPromo = Replace(RSsel("PrezzoPromo"), ",", ".")


SQL = "UPDATE dispotmp Set Codice = '" & Codice &"', PrezzoListino = " & PrezzoListino & ", Descrizione = " & Descrizione & ", DescEstesa = " & DescEstesa & ", NomeCasaProd = " & NomeCasaProd & ", Fam = " & Fam & ", PrezzoPromo = " & PrezzoPromo & ", PrezzoRivenditore = " & PrezzoRivenditore & "


Set RS = Conn.Execute(SQL)
Set RS = Nothing
Conn.close
Set Conn = Nothing

%>


come si evince dal codice sopra non sono un fenomeno con ASP.
Mi sono bloccato xche mi dovrebbe controllare solo un record e non riesco a farei il LOOP.
 
Ciao carissimo, temo di aver capito molto poco della tua richiesta, quindi ti chiedo di espormela come se tu fosssi il cliente che deve soddisfare la sua esigenza e non lo sviluppatore con un problema tecnico ;)
 
Scusa in effetti credo di comprenderlo solo io, ma sto andando al manicomio in queste ultime settimane LOL :hammer:

in pratica ho 2 databse (DB e DBTMP) e vorrei creare uno script che :

- aggiunga nella tabella 'NOVITA' di DBTMP, tutti i nuovi record presenti in DB che non sono stati trovati in DBTMP (chiaramente sulla base del CODICE)

- aggiornare i codici da DB a DBTMP (sempre dove i codici sono gli stessi)

Spero di essere stato chiaro


GRAZIE
 
OK :)

Innanzitutto sappi che il backup da un database all'altro puoi farlo con istruzioni native SQL

Backup delle tabelle di un database con l'istruzione INTO

In secondo luogo agisci come ti descrivo:

1. estrai tutti i record dal primo database ed utilizza un identificativo univoco (non conosco la tabella ma ce ne sarà uno, ad esempio il codice fiscale se si tratta di un'anagrafica)

2. apri il secondo database ed effettua una query estraendo tutti i record in cui compare l'identificativo

3. inserisci tutti recird estratti dal primo database che non hanno corrispondenza nel secondo

Spero di averti detto qualcosa di utile e di non aver solo detto, a parole mie, quello che già sapevi... :)

In ogni caso se hai problemi siamo qui!

Ciao ;)
 
il problema è che anche io vorrei fare quello che mi hai consigliato
perche chiaramente il ragionamento non fa una piega.

Solo che tutti i miei lavori fatti con ASP fino ad ora si trattava inserire, modificare, aggionare, visualizzare dati di un DB e quindi mi trovo un po in difficolta

LOL :confused:

Codice:
<%
Dim RSCorr, RSDispo , cm, gg, mm

		Set RSCorr = Server.CreateObject("ADODB.Connection")
	RSCorr.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../DatiDB/dispotmp.mdb")
	RSDispo.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../DatiDB/dispo.mdb")



set rs=RSCorr.execute  ("SELECT fam FROM Corrispondenze WHERE ....non riesco a capire comefare ilconfronto ....") 'se da codice
set rs=RSDispo.execute ("SELECT fam FROM dispo WHERE ....non riesco a capire comefare ilconfronto ....") 'se da codice
do while not rs.eof
response.write(RS.FILEDS("descfam"))
RS.MOVENEXT
LOOP
RSCorr.close
Set RSCorr = Nothing
Set RSDispo = Nothing
%>

......scusa se posto la stessa cosa che ho postato in un altro 3d
 
Ultima modifica:
mica ti devi scusare :)

ti faccio un esempio teorico... sei io sono un meccanico ed aggiusto solo fiat e poi mi capita un'alfaromeo mica gli dico di andare a casa a piedi!

studio, provo, mi spratichisco... e lo faccio!

quindi analizza il problema, poi provaci, hai il nostro supporto qui!
 
Codice:
[I]DB1 -> nome=DISPO tabella=DISPO campo=Fam, DescFam
DB2 -> nome=DISPOTMP tabella=Corrispondenze campo=Fam, DescFam [/I]


<!--#include file="Include/conn_dispotmp.asp"-->
<!--#include file="Include/conn_dispo.asp"-->



<% 
	Dim rsdispo, codice, rsValore, chi, id, Conn3, fam, SQLScheda, RSScheda, DescFam, valore, gestito, var, rscorr, SQL, descdispo, famdispo, desccorr, famcorr
	
	

	
	Set RSDispo = Server.CreateObject("ADODB.Connection")
	RSDispo.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("../DatiDB/dispo.mdb") 

	fam = Request("fam")
	descfam = Request("descfam")
    


  
	strQuery = "SELECT * FROM dispo WHERE dispo.fam NOT IN (SELECT dispo.fam FROM dispo INNER JOIN Corrispondenze ON dispo.fam = Corrispondenze.fam) UNION SELECT * FROM Corrispondenze WHERE Corrispondenze.fam NOT IN ( SELECT Corrispondenze.fam FROM Corrispondenze INNER JOIN dispo ON Corrispondenze.fam = dispo.fam)" 
  			Set rsdispo = Conn3.Execute(strQuery)
	
    

		
 %>

mi restituisce ERRORE Necessario oggetto:"

ma teoricamente dovrebbe funzionare....... anche se la strQuery non è farina delmio sacco :hammer:
 
prova ad eseguire il codice sql (non farina del tuo sacco) direttamente sul query analyzer di access e vedi se ti da errore...

dimmi anche qual'è la riga che ti da errore
 
ora la posto ..........solo che mipare di capire che le tabelle risiedono nel solito DB ed io invece ne ho due DISPO e DISPOTMP

Codice:
Access Analizer:    

'non trova la tabella dispo'   

[I] quindi provo con collega tabelle esterne e ......[/I] 

'Numero di colonne non corrispondente nelle due tabelle o query selezionate di una query di unione'
 
Ultima modifica:
Questo SQL è inguardabile appena riesco a districarlo ti so risposta... scusate l'ignoranza ma si può articolare i select???


SELECT * FROM dispo
WHERE dispo.fam NOT IN (
SELECT dispo.fam
FROM dispo INNER JOIN Corrispondenze ON dispo.fam = Corrispondenze.fam)
UNION
SELECT * FROM Corrispondenze
WHERE Corrispondenze.fam NOT IN
(SELECT Corrispondenze.fam FROM Corrispondenze INNER JOIN dispo ON Corrispondenze.fam = dispo.fam)
 

Discussioni simili