Newsgroup: it.comp.lang.visual-basic
Titolo: per pietà aiuto

Come dai post precedenti, non ne esco.
Spiegatemi, per l'amor di dio, come fareste una cosa del genere.
PREMESSA
connessione dbA (ODBC, SQLserver)
connessione dbB (ODBC con DSN, foxpro)
Recordset su dbA (massimo settanta record)
ciclo sul recordset 
1) Un insert su dbB, con i dati dal recordset (dbA)
2) una o due query sul dbB
3) un insert o update (c'è un if..) sempre sul dbB
wend, fine ciclo
Ora, se avete letto le mie rogne precedenti, mi saltano fuori errori 
assurdi, come "la memoria non poteva essere...". 
Se tolgo un po' di cose, come le query (punto 2), funziona. Lo stesso se 
tolgo l'insert (punto 3).
Quindi, sono sicuro che il problema è che mentre il Recordset primario 
va veloce, il lavoro sul dbB (foxpro) non ci sta dietro.
Speravo di trovare un modo di lavorare a step, ma non capisco come. O 
almeno di far eseguire le cose una alla volta.
Premetto che, peraltro, devo fare proprio degli conn.execute per 
inserire i record.
Aiuto per favore.

 Come dai post precedenti, non ne esco.
Vuoi fare una cosa? Pubblica il codice esatto (non le descrizioni),
indicando (sempre esattamente) qual è la riga che provoca l'errore. Indica
inoltre la versione di ADO che usi (quella che hai dichiarato nei
riferimenti) e, possibilmente, la versione di SQL Server.

, 
LupoOrmaiR...@libero.it
 says...

Ah se vuoi siroppartelo, molto volentieri. 
http://66.71.144.181/vbcode.txt
ADO 2.6 (microsoft active x data.....)
La riga che provoca l'errore....
Alcuni record, magari 1, magari 5, li passa senza problemi, prima di 
andare in errore.
Nella maggior parte dei casi, l'errore (di windows) è "la memoria non 
poteva...".
In questo caso, si pianta tutto, non hai niente da fare.
Se levo l'esecuzione della seconda INSERT (quella della tabella 
arp_rogr), funziona benissimo. Se levo le query, funziona bene.
Per questo sono sicuro che sia il DBF che, con troppe cose da fare alla 
volta, scassa tutto.
Ho comunque, ma non certo definitivamente, risolto: inserisco in 
un'altra tabella temporanea.
A fine loop, ne creo un altro, e dalla temporanea vado a quella 
corretta.
Che cacchio di sistema.

*rozilipo* ha scritto:
...
http://makeashorterlink.com/?O53861B74
Prova, come si legge nel post, a usare un altro driver:
...
Without catching (...) I can observe messages like "The instruction
at 0x77f6497f referenced memory at 0x74754400. The memory could not
be written", etc. I understand that NT is more ticklish on memory.
The reason why I think it is probably not my fault is that I observe
similar crash when I start VC++ 6, create the Database Project,
DSN=Visual FoxPro Tables (it uses MS Visual FoxPro Driver) and point
to the directory where the tables reside.
...
"My program worked when I used "Microsoft FoxPro Driver (*.dbf)" or
"Microsoft dBase Driver (*.dbf)", version 3.51.171300 (ODBCJT32.DLL
from 13.5.1998). However, the results of OpenSchema are different
from those got using Visual FoxPro Driver (when it worked under
Windows'98 -- DBTYPE_R8 instead of more precise DBTYPE_NUMERIC plus
other information)."
...

 
ahhhhhhhh!
Vedi che sto smacchinando da stamattina, ed è un baco (forse) del 
driver!
Provo, poi ti so dire

 > 
Ecco, ho risolto, posto immediatamente, sperando, adesso e in futuro, di 
alleggerire la vita di qualcuno.
Ho Win2000, sě.
Ho aggiornato il MDAC (avevo il 2.60), niente.
Ho provato anche con Driver DBASEIV eccetera, niente.
Allora ho rimesso il Visual Foxpro Driver.
Nelle impostazioni (del DSN) ci sono delle OPTIONS: le ho levate tutte: 
e funziona!
Ma porcogiuda...
Grazie infinite, Lupo.
Avevo anche provato a cercare su Google, ma l'errore era troppo 
generico, e niente. Non ho pensato, come hai fatto tu, a deja/groups 
google.

 google.
secondo me dejanews (deja o googlegroups come la si vuole chiamare) dovrebbe
essere sempre la prima fonte, seguita (o preceduta) da MSDN e poi da google
il più delle volte mi basta comunque cercare su deja (soprattutto in
inglese)
P.S.
(ho lasciato nel quote i ringraziamenti a Lupo che se li è meritati per aver
eseguito la ricerca :)
-- 
Fabio Angela (aka Red Angel) ICQ: 95966807
http://www.redangel.it
 : il portale sulla programmazione

 e funziona!
Se hai davvero risolto, bene!, ma ... non mi quadra.
Il post dice "...DSN=Visual FoxPro Tables (it uses MS Visual FoxPro
Driver)..." e poi "...My program worked when I used "Microsoft FoxPro Driver
(*.dbf)" ..."
e ho la sensazione che col DSN tu continui ad usare il driver che questo
diceva non andare e non quello che pare funzionare ("Microsoft FoxPro Driver
(*.dbf)")
Se č cosě (oppure ho frainteso?), cosa fanno quelle opzioni che hai tolto?
C'č qualche giustificazione? Io non conosco FoxPro, quindi non ci capirei
nulla, ma forse tu sě, allo scopo di poter affermare che il problema viene
risolto se la tal opzione viene abbassata...

 nulla, ma forse tu sì, 
Uh...lo vedo in questi giorni per la prima volta.

 Nono, io uso proprio Microsoft FoxPro Driver (*.dbf)
Ok, allora è quello che lui dice funzionare "... My program worked when I
used "Microsoft FoxPro Driver (*.dbf)" ... "
Beh, adesso torna. O ho frainteso ancora?

, 
LupoOrmaiR...@libero.it
 says...

Sì.
Ho sempre usato quel driver, con errore e senza. Ho anche provato i 
Dbase, senza successo.
L'unica salvezza è stata deflaggare quell'opzione nel DSN.