Newsgroup: it.comp.lang.visual-basic
Titolo: Campi testo creati ma non gestiti

Salve,
mi è successa una cosa molto strana. Creo tramite ADO 50 campi testo di 255 
caratteri in un DB ACCESS 2000.
La creazione a codice mi va bene, però quando cerco poi di fare un upload 
scorrendo la tabella mi dà errore (dice "operazione troppo complessa"). Se 
riduco i campi creati a 49, va tutto bene.
Qualcuno sa dirmi la motivazione?
GRAZIE
----------------------------------------------
nico d'andretta
web developer
public image
Le informazioni contenute in questo messaggio sono riservate e confidenziali 
ed è vietata la diffusione in qualunque modo eseguita.
Qualora Lei non fosse la persona a cui il presente messaggio è destinato,
La invitiamo ad eliminarlo e a non leggerlo, dandocene gentilmente 
comunicazione.
Per qualsiasi informazione si prega di contattare la Public Image 
all'indirizzo e-mail 
in...@pibn.it
(D.Lgs. n. 196/2003 - Testo Unico Privacy) 

 Qualcuno sa dirmi la motivazione?
Cos'è un 'upload' su un db?
Alberto
-- 
seguiam la scia
se un meganoide ci spia

Un'operazione del tipo:
ciclo
  rs.Edit
  rsApp("CAMPOTXT50") = rs("Nome")
  rsApp("CAMPOTXT49") = rs("Cognome")
  rs.Upload
  rs.MoveNext
fine ciclo
che mi va ad aggiornare i campi di un db.


 ha scritto nel messaggio 
news:mn.92677d694...@hotmail.com...


   rs.Upload
Forse era .Update ?
-- 
Salutoni
Sergio
C'è il giorno in cui nasci e quello in cui scegli di vivere
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 fine ciclo
Innanzitutto, se non metti i .Value ti esponi a diversi problemi.
Parallelamente, quella roba lì a me non ha mai funzionato, io uso gli 
Update Sql, quindi non so aiutarti oltre.
Ciao


 Qualcuno sa dirmi la motivazione?
Ma access 2000 ha qualche limite sul numero di campi?
-- 
Greg

 Update Sql, quindi non so aiutarti oltre.
Ti assicuro che con dao funziona al bacio, con ado non so.
Uso sia Update sql che dao.edit, alla fine credo la differenza tra i due sia
tra una scelta di scrivere un codice che si sviluppa in verticale o
orizzonale.
-- 
Greg

 caratteri in un DB ACCESS 2000.
zac
Alcune considerazioni....
escluderei il limite dei fields
...ho fatto tabelle ben più complesse e con molti campi in più!
Cmq in questo post si legge il limite per Access 2000
http://www.thescripts.com/forum/thread521303.html
Io faccio diverso...oramai da un bel po'...anche per abituarmi a
migrazioni future NETtiane....
mi faccio una bella query SQL
(eliminazione,inserimento,aggiornamento)...
ho anche il vantaggio puramente intellettuale di un piccolo incremento
di velocità di esecuzione
Il messaggio....
non è che è "QUERY troppo complessa"? invece di "OPERAZIONE"???
Leggi
http://support.microsoft.com/kb/103429/en-us
....semplifica la query!....accorcia i nomi delle tabelle....
STAI ATTENTO a non aver usato una parola "dedicata"
Access2000
http://support.microsoft.com/kb/209187/
Access2002 2003
http://support.microsoft.com/kb/286335/
Non c'è nessuna controindicazione a fare un aggiornamento su 50 o 100
Campi (fino a 255 non ci son problemi)....se hai memoria!
Certo ....una volta...qualche anno fa ...postò "uno" sul NG che
chiedeva di superare quel limite...non gli bastavano 255 campi per
tabella!!!
Ma con 50 campi non ci son problemi....è una tabella normale!

 fine ciclo
Rs.Edit in ado non mi pare esista.
Specifica i .Value
Verifica l'apertura del recordset (locktype, cursortype)
Prova ad usare o l'update batch (con AdAffectCurrent mi pare)
Prova ad usare
RsApp.Update "CAMPOTXT50",rs("Nome").Value
-- 
DBMS Firebird
VB6 + Ado

 Ma con 50 campi non ci son problemi....è una tabella normale!
...e quindi il problema sta da qualche altra parte...propenderei per un
tuo baco concettuale!
Ad esempio...come ti han detto.....
ADO NON HA "EDIT"
...edit... ce l'ha DAO!
Ed allora comincio a pensare...accendendo la palla di cristallo...che
tu stai mischiando pere e patate...DAO e ADO....
Commistione possibilissima ma con molte cautele
Comincia ad esempio a definire
dim a_Rs as adodb.recordset
e
dim d_Rs as dao.recordset
almeno sai a cosa ti riferisci!...se alle pere o alle patate!!!!
perchè SE
SE...
ti funziona
  rs.Edit
  rsApp("CAMPOTXT50") = rs("Nome")
  rsApp("CAMPOTXT49") = rs("Cognome")
  rs.Update
  rs.MoveNext
TU STAI PARLANDO DI DAO
e non di ado.....
Insomma cosa stai facendo lo devi saper tu....non noi!

Grazie,
sto adoperando ADO e scusa l'errore, ma il codice che sto usando č:
  rsApp("CAMPOTXT50") = rs("Nome")
  rsApp("CAMPOTXT49") = rs("Cognome")
  rs.Update
  rs.MoveNext
senza EDIT, ma continua a darmi medesimo errore al campo testuale.
Devo fare le prove mettendo i value...
Vi tengo aggiornati. GRAZIE. 

 Devo fare le prove mettendo i value...
E' una settimana che sei su 'sto problema, e ancora non hai provato?
Alberto
-- 
Max Beerbohm: Tutto ciò che è degno di essere fatto è stato fatto 
ripetutamente. Dalle cose mai fatte bisognerebbe tenersi, sospetto, 
molto alla larga.

 Vi tengo aggiornati. GRAZIE.
SIGH SOB STRASOB
Allora.......
rsApp("CAMPOTXT50") = rs("Nome")
è pericoloso e da non fare
Quando tu arrivi a fare un
rs("Nome")=qualcosa
rs.update
tu DAI IL CONTROLLO ad ado e al motore DB
ORA dare il controllo alla cazzo di cane...è un volere crearsi casini!
Del tipo...guidare una ferrari su una strada ghiacciata contromano e
bendato!
Il tuo "cazzo di cane"...è il NON VALIDARE...quello che passi
il fare
rsApp("CAMPOTXT50") = rs("Nome")
è mettere le chiappe alla finestra???
ad es.
se rs("Nome") è null?
rsApp("CAMPOTXT50") accetta null???
se è più grande?...
se cade la connessione?
Buona regola ...è prendersi il dato....validarlo.....risolvere i vari
potenziali conflitti ...e SOLO DA ULTIMO...spararlo nel campo
Non sarebbe di fuori che ti si incasina su un record che ha valori
nulli o sballati...o addirittura rs("Nome") potrebbe non esserci!
quindi sarebbe bene
1)
Leggi un intero record del DB1
1-bis)
Metti tutti i valori in una serie di variabili (array,
variabili,classi....quello che vuoi...basta che li ritrovi!)
2)
VALIDA tutti i dati sulla base di quello che si aspetta DB2
se CAMPOTXT50 si aspetta una stringa non nulla...la var Nome deve
dargliela!
se si aspetta un long ...non dargli un currency...etc etc
3)
Scrivi i dati in DB2
se db2 ha un tracciato record valido...non può fallire!
se fallisce fai ancora un test
FATTI A MANO con access ad esempio ...la tabella con tutti i campi di
DB2...e riprova come ti ho detto ad importare i dati
se funziona...
sei una pippa a creare al volo il DB2!