
Originariamente inviata da
giustavalla
...
Non ho però capito due cose :
- fai riferimento ad un disconnessione
- fai riferimento ad un SELECT; io non utilizzo questa istruzione.
questo è l'xml che mi genera leggendo i dati da una tabella con una pk di un db access
...nota che ci sono rs:basetable , rs:basecolumn e rs:keycolumn="true" che mancano nel tuo ...
codice:
- <xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
- <s:Schema id="RowsetSchema">
- <s:ElementType name="row" content="eltOnly" rs:updatable="true">
- <s:AttributeType name="K1" rs:number="1" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="T1" rs:basecolumn="K1" rs:keycolumn="true">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" />
</s:AttributeType>
- <s:AttributeType name="F2" rs:number="2" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="T1" rs:basecolumn="F2">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true" />
</s:AttributeType>
<s:extends type="rs:rowbase" />
</s:ElementType>
</s:Schema>
- <rs:data>
<z:row K1="0" F2="100" />
</rs:data>
</xml>
questo il codice usato :
codice:
Dim rs1 As New Recordset
Dim cn As New Connection
cn.CursorLocation = adUseClient
cn.Open "FILE NAME=c:\temp\FileUDL.udl"
On Error Resume Next
cn.Execute "Drop Table T1"
cn.Execute "CREATE TABLE T1 (K1 Int PRIMARY KEY, F2 Int)"
On Error GoTo 0
cn.Execute "INSERT INTO T1 VALUES(0, 100)"
rs1.Open "Select K1, F2 From T1", cn, adOpenKeyset, adLockOptimistic
If Dir("c:\temp\Persist.xml") <> "" Then Kill "c:\temp\Persist.xml"
rs1.Save "c:\temp\Persist.xml", adPersistXML
EDIT
aggiungo anche che questo codice mi funziona in locale (non ho tempo di provare con la pagina asp ora)
codice:
rs2.Open "c:\temp\Persist.xml", cn, adOpenKeyset, adLockBatchOptimistic, adCmdFile
rs2.AddNew
rs2("K1") = 1
rs2("F2") = "200"
rs2.UpdateBatch