- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- ADODB.Recordset - Funzione AddNew
-
Tutta quella inerente il topic.
-
Dim fieldList(112)
Dim fieldValues(112)fieldList(0)="Campo001"
fieldValues(0)="Valore001"
fieldList(1)="Campo002"
fieldValues(1)="Valore002"
...
...
fieldList(112)="Campo112"
fieldValues(112)="Valore112"SQL_Testo="SELECT TOP 1 * FROM Tabella ;"
set rsADO = Server.CreateObject("ADODB.Recordset")
rsADO.ActiveConnection = Connessione
rsADO.Source = SQL_Testo
rsADO.CursorType = 0
rsADO.CursorLocation = 2
rsADO.LockType = 3
rsADO.Open
rsADO.AddNew(fieldList, fieldValues)
-
Posta la porzione di codice in cui estrai questi dati:
fieldList(0)="Campo001" fieldValues(0)="Valore001" fieldList(1)="Campo002" fieldValues(1)="Valore002"
-
Il problema non è dato da cosa inserisco, ma il limite fisico che ho notato dal numero di colonne che vado ad inserire.
La funzione addNew su una tabella con più di 110 colonne si pianta durante l'inserimento, anche se tu gli passi i due vettori composti da soli 5 elementi.
Cerco di capire e sapere se esiste un metodo per aggirare l'errore o eventuali impostazioni da settare (cursori, ecc).
-
Hai gia' provato a fare cosi:
<% 'apri la conn 'selezioni i record da estrarre 'Inserisci i dati sql = "INSERT INTO tbl (campo1, campo2) VALUES ('"&valore1&"', '"&valore2&"')" connessione.execute(sql) 'chiudi risorse %>
-
Sono costretto ad utilizzare la funzione addNew.
Gli altri metodi li conosco già.
AddNew perchè sei tanto ostica ?????
-
Questo cosa è? Può servire?
http://search.microsoft.com/search/results.aspx?view=it-it&st=b&na=82&qu=addnew&s=5
-
Grazie.
Nelle MSDN non accennano nulla sul limite massimo di colonne della tabella su cui si esegue un addNew tramite il recordset.
Sono ancora al punto di partenza.
-
Ho cercato in lungo e in largo ma in italiano google non lo sa
In inglese c'è molto, ma non ho abbastanza conoscenze tecniche.Traducendo con il translate di google qualcosa c'è
:bho:
-
Grazie per la buona volontà.
:bho:
-
AddNew non ha limiti.
Perche' sei costretto ad utilizzarla?Domenico
-
Mi trovo per le mani un progetto sviluppato con VisualInterdev 6.0, dove li si usano per la programmazione in ASP, i ControlDesignTime (oggetti appositi offerti come strumenti per l'integrazione e lo sviluppo di db ...).
Allora fino adesso bene, ma se nella mia tabella ho più di 110 colonne si pianta fa funzione addNew incapsulata dentro il codice dei RECORDSET.ASP (modulo ControlDesignTime che gestisce gli oggetti recordset).
La programamzione dei ControlDesignTime la conosco bene e l'ho modificata più volte a mio piacimento (è del js e c++ lato server) però non riesco a capire come suprerare questo limite delle colonne massime.
dato che il progetto è e deve rimanere con quella impronata, non volevo rifare quella parte per la gestione di questa tabella, ma capire se c'è un metodo per ovviare o gestire in modo "limpido" il problema.
Lo so anch'io che con una insert diretta risolvo il problema, ma i ControlDesignTime oggrono una serie di integrazioni fra loro (griglie, conessione, recordset, textbox, ecc.) che al momento non posso smantellare di brutto.
Perchè se smantello questa parte devo smantellare più di 100'000 riche di codice (il probelam delle 110 colonne a breve mi si presenteà anche su altre tabelle).
Esiste anche l'opzione di spezzare la tabella, ma andrei incontro a casini ancor più gravi.
-
In effetti e' un bel macello.
Hai gia' provato a verificare che i campi > al 110 siano pieni?
-
In effetti i DTC sono roba da preistoria. Io non penso che il problema sia il numero di colonne. In genere l'errore che dici tu è determinato dal tentativo di inserire una stringa vuota in un campo che non lo consente, oppure di inserire caratteri in un campo numerico.
L'unico modo per saperlo, è provare ad utilizzare la funzione addnew SENZA il DTC e vedere cosa succede, ma prima di tutto contolla che i campi consentano lunghezza zero.