Newsgroup: it.comp.appl.access
Titolo: Problema con una query sotto wnidows vista

Ho creato un applicativo in VC++ che utilizza l'mdb di access
unicamente come DB.
All'interno faccio una query con somma di stringhe. Semplificandola:
SELECT '1' & ' ' & '3' FROM stati WHERE sta_id=3
Con ODBC driver di XP (mdac 2.8 4.00.6304.00) o precedenti tutto OK.
Con driver vista (6.00.6000.16386) si inchioda. L'errore:
Applicazione che ha generato l'errore nomeapplicazione.exe, versione
0.0.0.0, timestamp 0x46efdad1, modulo che ha generato l'errore
msjtes40.dll, versione 4.0.9635.0, timestamp 0x450b3683, codice
eccezione 0x40000015, offset errore 0x0002ea6f, ID processo 0x490,
data e ora di avvio dell'applicazione 0x01c8155617eb31a7.
ID evento 1000
Dopo diversi tentativi (la query era molto più complessa) ho scoperto
che il problema è la &. Se tolgo la somma tutto OK. Io però non la
voglio togliere.
Ho trovato che la somma può essere fatta anche in un altro modo
SELECT {fn CONCAT({fn CONCAT('1',' ')},'3')} FROM stati  WHERE
sta_id=3
ma anche in questo caso fino a XP tutto OK con Vista stesso
inchiodamento.
Come posso risolvere il problema?
Non posso sommare due stringhe in SQL con vista?
Grazie

 Grazie
Ho trovato un post che dice che i campi risultato di somme sotto vista
sono dei campi di tipo memo invece che di tipo stringa come nelle
passate versioni.
Purtroppo mi risulta difficile verificare se la cosa è effettivamente
così in quanto attualmente non posso installare il sistema di sviluppo
su una macchina vista.
Qualunque aiuto è ben accetto.
Grazie

 Grazie
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access

Ho qualche dato in più...
Sono riuscito a vedere che il tipo di dato restituito è un varchar, il
problema è invece sulla lunghezza.
Secondo la funzione SQLDescribeCol la lunghezza è di 
2147483598
 (2GB)
il che chiaramente non è corretto. E questo è il problema.
Ho trovato una cosa simile qui.
http://support.microsoft.com/kb/q272951/
Si risolve il tutto con
SELECT CStr('1' & ' ' & '3') FROM stati WHERE sta_id=3
anche se il tutto è chiaramente un buco del driver.
Ciao a tutti.

> Scusa ma perchè non fai "1 3" ..
Cos'è una battuta?
la somma che faccio io è una cosa complicata prendendo pezzi di campi,
costanti... ho messo questo solo per semplicificare... visto che anche
questa query da l'errore.
Ciao

 anche se il tutto è chiaramente un buco del driver.
Macchè... non si risolve un bel fico secco...
l'errore esiste ugualmente....
continuo la ricerca...


Scusa e da cosa avrei potuto evincerlo?


> > All'interno faccio una query con somma di stringhe. Semplificandola:
Quel "semplificandola" credevo fosse sufficiente per far capire che
quella non era esattamente la query.
Comunque se chiaro non sono stato mi scuso.
Fatto sta che quella query NON funziona.
Ho trovato un articolo microsoft che dice "arrangiati" scritto un paio
di settimane fa.
http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.vc.database&tid=9f742f96-b7eb-4eaa-9ad9-bd297b1df356&p=1
e quindi ho modificato la mia libreria in modo che se sono in quella
particolare situazione setti la dimensione campo a 255 invece dei
2GB.
Altra soluzione mi sa che non esiste, almeno per ora.
Ciao e grazie comunque del tuo tempo.