Newsgroup: it.comp.lang.visual-basic
Titolo: Errore recordset VB6 lettura dati file AS400.

Salve,
ho questo problema ho un programma vb6 e eseguo delle query tramite 
driver IBMDA400 OLEDB ad un as400, succede una cosa assurda:
SELECT COUNT(PROGRS) AS TotRec FROM DITTA002.STATS00F WHERE DTDOCS 
BETWEEN 19000101 AND 20391231
SELECT * FROM DITTA002.STATS00F WHERE DTDOCS BETWEEN 19000101 AND 
20391231 ORDER BY DTDOCS
Qeste 2 funzionano correttamente e mi riempie correttamente i recordset.
Mentre se faccio:
SELECT COUNT(PROGRS) AS TotRec FROM DITTA002.STATS00F WHERE DTDOCS 
BETWEEN 20061101 AND 20391231
SELECT * FROM DITTA002.STATS00F WHERE DTDOCS BETWEEN 20061101 AND 
20391231 ORDER BY DTDOCS
La prima funziona e la seconda mi resituisce 0 record. Cosa può essere, 
sto impazzendo???

 essere, sto impazzendo???
Ti faccio la domanda più idiota ed assurda, la cui risposta è ovviamente 
scontata: sei sicuro che ci siano dei records con il campo DTDOCS superiore 
a 20061101, nel database AS400??

t = 1" / (1 - (v²/c²)) ^ ? ha scritto:

ho provato tutte le query sull'as400 in questione e mi funzionano 
dandomi il risultato di 327 record.

 dandomi il risultato di 327 record.
mmm... mi viene un sospetto...
dal programma vb6, mi fai questa:
SELECT * FROM DITTA002.STATS00F WHERE DTDOCS BETWEEN 20061031 AND 20391231 
ORDER BY DTDOCS

t = 1" / (1 - (v²/c²)) ^ ? ha scritto:

Non riempie il recordset.
La cosa assurda che la stessa ditta del cliente presa dall'as400 del 
cliente e portata sul nostro as400 in locale funziona tutto.
Assurdo!!!
Come ve lo spiegate?
Infine non capisco perchè semplicemente spostando le date funziona,
cioè faccio l'intervallo settembre-novembre funziona, invece solo 
novembre dal 1 al 30 non va, vi dico anche che prima faccio un select 
count identico e mi dice che ci sno 327 record.

 count identico e mi dice che ci sno 327 record.
Ho un piccolo sospetto....
Probabilmente su AS400 in questo range c'è un record scritto male
quindi:
Prova invece di Select * mettere qualche campo (che sei sicuro essere
scritto correttamente)
Select Campo1, Campo2...
e vedi se funziona
Poi prova a guardare se ci sono delle limitazioni al file,
eventualmente usa una Vista logica
per questa Select...
Ciao   Nadia

 
Ciao Nadia,
ho fatto le prove ma purtroppo non cambia niente.
Ciao   Marco

 Ciao   Marco
Senti tanto per provare....
Fai la select prendendo solo pochi rck alla volta e vedi che succede
Cioè vedi dove si ferma!!!!!  Non su As400 ma su VB6
Eventualmente prova ad usare la stessa Select su Access, magari ti dà
qualche informazione
in più.
Sicuro che il file non ha limitazioni?????

ancora una cosa:
Prova a togliere il BETWEEN
SELECT * FROM DITTA002.STATS00F WHERE DTDOCS >= 20061101 AND <=
20061130 ORDER BY DTDOCS

gialdi...@libero.it
 ha scritto:

Su Access con le tabelle collegate la query fatta con data da 20061101 
funziona, quindi cosa può essere?
Sto impazzendo....Grazie..Marco

>ORDER BY DTDOCS
20061101:
in pratica dato che 11 può essere sia un mese che un giorno e 01 anche
access sicuramente le interpreta al contrario...
mi è capitato spesso... quindi magari...... 

 access sicuramente le interpreta al contrario...
E' lo stesso sospetto che avevo io ieri, quando gli ho chiesto di fare la 
select dal 31 ottobre (20061031) invece che dal 1 novembre (20061101).
Non ha funzionato lo stesso.... :-(
B.

 B.
grrrrrrrrr
ok altra proposta.... il cancelletto????
...between #data# and #data# ??
:-) 

gialdi...@libero.it
 ha scritto:

Ciao Nadia,
grazie ho risolto utilizzando per le query la tecnologia ODBC invece di 
OLEDB...Grazie

 ha scritto nel messaggio 

Lette sotto nell'ultimo post ho risolto.

 OLEDB...Grazie
Sono contento per te, cha hai risolto.
Ma ora la domanda sorge spontanea......   PERCHE' ??!?   :-)
B.
ps: odio quando si trovano le soluzioni a un problema ma non si riesce a 
spiegare il motivo del malfunzionamento originale (per mancanza di tempo, 
uno conclude lì, dicendo "vabbeh, ho risolto...").
E' una cosa che capita molto spesso in informatica, succede anche a me 
succede qui in ufficio, e devo confessare che quando mi capita mi fa 
innervosire molto!! :-)

 innervosire molto!! :-)
credo sia colpa del fatto che siam pagati per risolvere dei problemi, ma 
non per spiegare perché.
Esempio pratico: ho fatto uscire pazzo uno parlandogli di ingegneria del 
software!
-- 
Emanuele Torrenti
Registered Linux User #409659
"I fought the law, and the law won"

t = 1" / (1 - (v²/c²)) ^ œ ha scritto:

Esatto, è la mia stessa sensazione e stato d'animo.
Secondo me dipende dal driver IBMDA400 dell'IBM non è la prima volta che 
mi da problemi.

 mi da problemi.
Queste statistiche di GIGA sono un problema!
Ciao, Vincenzo