Newsgroup: it.comp.lang.delphi
Titolo: Query che inserisce troppi dati..

Ringraziando Morde x il suo valido aiuto..(adesso la query
gira..grazie!) č sorto il problema che secondo Delphi copiare 150
elementi con una query di INSERT č un po' troppo..infatti ho provato
con meno elementi e funziona...c'č mica qualche modo per ricondurre
alla ragione il programma?
Grazie a tutti per l'attenzione
Ciao Andrea

 con meno elementi e funziona...c'č mica qualche modo per ricondurre
Se ti riferisci ad un messaggio di errore che fa riferimento al tentativo di
inserire troppi dati (non ricordo la sintassi esatta dell'errore ;o)), il
problema č in qualche campo del DB al quale tenti di passare un dato
incongruo.
Es. hai un campo data e tu gli passi una stringa di blank, oppure č un campo
che non puň essere vuoto e tu gli passi un null ecc. ecc.
Controlla bene e vedrai che trovi un problema del genere
Ciao e Buon lavoro (so per esperienza che č una gran rottura !!)
Gigi

 Gigi
l'errore è "Impossibile inserire la quantità di dati desiderata...inserire
meno dati". Controllerò come mi hai detto il tipo dei dati però c'è da
dire che con una decina di elementi il programma non ha dato alcun
problema, quidni non me la spiego tanto..è proprio una rottura.Ciao e
grazie Andrea
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

alla ragione il programma?
Si, un modo sarebbe quello di postarci il codice delphi che stai impiegando, e
poi eventualmente le strutture delle tabelle interessate ;-)
Abbi fiducia, mostraci il tuo codice...
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Non c'č problema, la query sono 3 righe:
INSERT INTO Ingredienti_prova
SELECT *
FROM IngredientiXls;
dove ingredienti_prova č la tabella che prima svuoto e poi voglio riempire
con il contenuto della tabella di Access IngredientiXls (che č una tabella
collegata a una tabella Excel). Ingredienti_prova e IngredientiXls hanno
questa struttra comune:
Nome Prezzo Carboidrati Fibre Ecc.. Note
In piů la tabella destinazione (ingredienti_prova) ha il campo ID a me
necessario. 
Se c'č bisogno di maggiore chiarezza chiedimi pure tanto sono abbastanza
bloccato. Ciao e grazie x l'interessamento Andrea


collegata a una tabella Excel). 
Il principio e' corretto, il problema e' che stai importando una tabella
collegata ad excel: non hai le garanzie che le strutture siano identiche.
Come sottolineato in un altro post, una piccola differenza anche di field,
lungo 5 nel sorgente e 4 nella destinazione, ti da' quell'errore.
Una sintassi sicuramente funzionante tra due db access e' questa:
DataModule2.ADOCommandGenerico.CommandText := 'INSERT INTO Manutenzione IN
c:\temp\destinazione.mdb SELECT Manutenzione.* FROM Manutenzione IN
c:\temp\sorgente.mdb';
DataModule2.ADOCommandGenerico.Execute;
Provalo cosi', poi dimmi se funzia.
Ciao


 grazie Andrea
Confermo la mia valutazione precedente il problema è nella incongruenza di
dati attesi da Access per determinati campi.
Potresti provare ad operare direttamente sulla struttura del DB mettendo
tutti i campi, dove possibile:
Richiesto : No
Consenti lunghezza zero : Si
Ciao Gigi

 Ciao
Ho riniziato a lavorarci solo oggi al prog. e la query č diventata un
po' piů complessa:
INSERT INTO Ingredienti
SELECT *
FROM [SELECT *
FROM IngredientiXls
WHERE Ingredienti NOT IN (SELECT Ingredienti FROM  Ingredienti WHERE
Ingredienti IS
NOT NULL)]. AS [%$##@_Alias];
guarda quali record mancano nella tabella destinazione e li inserisce
(aggiornamento)
anche questa puň essere inserita in una struttura come quella che mi
hai detto ?
e che comando č datamodule.commandgenerico, cosa intendi?
Ciao e grazie x l'interessamento!!
Andrea

e che comando è datamodule.commandgenerico, cosa intendi?
Intendo che l'Adocommand che esegue quella query di cui ti ho suggerito
pocanzi l'utilizzo si trova in un datamodule e l'ho chiamato commandgenerico
proprio per la genericita' del suo scopo: quello di eseguire generiche
operazioni.
A questo punto hai due scelte, ho elimini la complessita' introdotta dalla tua
query iniziale e ci provi con l'adocommand, oppure costruisci un algoritmo che
prende da una tabella sorgfente e ricopia record per record sulla tabella
destinazione: data la locazione diversa delle due tabelle, residenti su db
diversi, dovrai usare due adoconnection.
Ciao!
