Newsgroup: it.comp.lang.visual-basic
Titolo: [?] ADO Problema con Insert da database diversi

Ciao a tutti,
Sto cercando di fare una insert da un database ad una altro. La
tabella di origine contiene 2 record e quella di destinazione e'
vuota.
Quando faccio l'insert pero' viene accodato un solo record...
La cosa ovviamente funziona se le due connessioni puntano allo stesso
db.
Perche'?? Il povider č Mirosoft.Jet.OLEDB.4.0
Ciao & grazie
Maurizio

 ha scritto nel messaggio
news:3ae81f33...@news.interbusiness.it...


Eccolo qua, vediamo se riesco ad essere chiaro...
- Questa e' la funzione che mi sono fatto per connettere i db
Public Function DBConnessione(Optional ByVal NomeDb As String) As
ADODB.Connection
 
  Dim Conn As New ADODB.Connection
  Dim strConnessione As String
 
  strConnessione = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
App.Path & "\" & NomeDb & ".mdb;Jet OLEDB:System database=" & App.Path
& "\system.mdw;Password=xxxx;User ID=yyyy;"
  With Conn
       .ConnectionString = strConnessione
       .CursorLocation = adUseClient
       .Open
  End With
 
  Set DBConnessione = Conn
 
End Function
- Setto le connessioni in questo modo
dim DbDest As New ADODB.Connection 
Set DbDest = DBConnessione("Prova")
- Questa e' la funzione per l'execute
Function DBExecute(Conn As ADODB.Connection, ByVal Sorgente As String)
As Long
 
  With Conn
       .Execute Sorgente
  End With
 
DBExecute = 0
Exit_DBExecute:
    Exit Function
 
End Function
- La query di Insert:
MioSql="INSERT INTO CfgNeg SELECT XXX_CfgNeg.* FROM
[C:\Prova\Prova_temp.mdb].XXX_CfgNeg LEFT JOIN CfgNeg ON
(XXX_CfgNeg.IDN = CfgNeg.IDN) AND (XXX_CfgNeg.Param = CfgNeg.Param)
WHERE (CfgNeg.IDN IS NULL) AND (CfgNeg.Param IS NULL)"
- E l'esecuzione:
R = DBExecute(DbDest, MioSql)
Puo' bastare?? Se non fatemi sapere e cerchero' di essere piu' chiaro.
Aggiungo che non vengono generati errori e se al posto di
Prova_Temp.mdb uso lo stesso Prova.mdb tutto funziona alla grande.
Grazie ancora.
Ciao
mau_rizio

ConnessioneOrigine.Execute "INSERT INTO Tabella SELECT * FROM tabella " & _
        "in '" & Path_E_Nome_Altro_DB & "'" & _
        "WHERE " & Eventuale_Condizione
Prova questa query! A me funziona!
CiaoZ
SebaMix

 ha scritto nel messaggio
news:9c99tm$cen9s$1...@ID-66833.news.dfncis.de...


        "WHERE " & Eventuale_Condizione
Grazie sebamix, questo pero' implica che tutte le tabelle in join
nella from risiedano sull'altro database, mentre io devo fare un left
join tra le tabelle su database diversi
Ciao
mau_rizio

In access di si pu' fare, e quindi credo si possa fare anche usando il
jet engine da vb... ora pero' ho la vaga impressione che usando
ado+jet non sia cosi' semplice... bah!
Ciao
mau_rizio

 ha scritto nel messaggio
news:3ae836c4...@news.interbusiness.it...


connessione....
Mi sa che sono d'accordo con te... uffa, in access era tanto comodo.
Adesso mi tocca ad aprire due recordset e via di find/edit/addnew, che
palle!
Pero' perche' se invece dell'inserte faccio una select con la stessa
from mi ritorna un numero di record a suo piacimento (ad esempio 3
invece che quattro...) ??
ciao
mau_rizio

AAARGH! 
il find dell'ado non e' multicolonna??
ma fatemi il piacere...
ciao
mau_rizio