[.NET]XML to Recordset

Pagina: 1
Acties:

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 07:26
Binnen een oud VB6 progje heb ik een component wat geabboneerd is op een message queue en wel "test". Zodra het component opgestart word luisterd deze naar de MSMQ en zodra een bericht ontvangen word zal deze het bericht van de queue trekken. (LET OP alle bericht zijn dus bestemd voor het component dus peeking niet nodig). Intern in het component dient het XML bericht naar een recordset vertaald te worden en doorgegeven aan het volgende component.

Dit component doet dus niets meer als ontvangen, bericht analyseren en converteren naar een recordset. Hierna wordt het resultaat doorgegeven naar een ander component die mbv deze recordset een batch opdracht verzend naar het volgende component etc etc.

Hoe converteer ik een XML bericht naar een recordset binnen .NET?

  • baskabas
  • Registratie: December 2000
  • Laatst online: 05-04 12:26
Misschien helpt dit je op weg... zo open je een XML bestand... wellicht kun je een bericht ook zo openen? :?

(eerst ref. naar ADO zetten...)
code:
1
2
3
4
5
Dim rstXMLMsg As ADODB.Recorset

Set rstXMLMsg = New ADODB.Recorset

rstXMLMsg.Open "d:\xmlmsg.xml"

Gewoon openen dus... tis het proberen waard, niet?
Anders eerst ff opslaan als bestand? (niet handig lijkt me)

Succes! (ik hou dit topic nog ff in de gaten ;))

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:42
Heb je niet zoiets als:
code:
1
2
DataSet ds = new DataSet();
ds.ReadXML(...);

(Zo even uit het hoofd, ik heb hier geen documentatie ofzo, maar ik herinner mij wel iets dergelijks.)

https://fgheysels.github.io/


  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 07:26
Op vrijdag 12 april 2002 14:11 schreef whoami het volgende:
Heb je niet zoiets als:
code:
1
2
DataSet ds = new DataSet();
ds.ReadXML(...);

(Zo even uit het hoofd, ik heb hier geen documentatie ofzo, maar ik herinner mij wel iets dergelijks.)
Een dataset is iets anders dan een recordset...

ben er nog mee bezig, gewoon inlezen gaat iig niet

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Correct me if I'm wrong, maar recordsets bestonden toch niet meer in ADO.NET (vervangen door datasets) :?

Overigens kan er mischien hier wel wat handigs tussen staan.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:42
Wat gebruik jij dan als equivalent in .NET voor een RecordSet? Een DataReader kan je niet als het equivalent beschouwen, want een DataReader verschaft enkel voorwaarts scrollen.

https://fgheysels.github.io/


Verwijderd

Op vrijdag 12 april 2002 15:15 schreef paulgielens het volgende:

[..]
Een dataset is iets anders dan een recordset...
Je hebt geen 'recordset' in .NET. Wel DataTable of DataSet (verzameling DataTables)

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 07:26
uhm ADODB kun je gewoon included mensen!

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:42
En is dat dan nog 'managed code'?

https://fgheysels.github.io/


Verwijderd

Op vrijdag 12 april 2002 19:12 schreef paulgielens het volgende:
uhm ADODB kun je gewoon included mensen!
Ja, en je kunt via de VB6 runtime namespace ook gewoon VB6 blijven krassen, maar .NET heeft zelf een inmense set classes, die je absoluut moet verkiezen boven externe components, waar mogelijk, omdat je bij het gebruik van externe components niet meer kunt spreken over 'safe', de GC ruimt het niet meer correct op, je moet dus erg veel code extra kloppen voor dezelfde functionaliteit, want ADO's functionaliteit is (behalve de serverside cursorcrap) compleet terug te vinden in .NET's System.Data[.*] namespaces.

Wil je dus een XML file naar een 'recordset' achtige toestand converteren, kijk dan naar hoe je een xml file kunt inlezen tot een DataTable.

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 07:26
ADODB is dus gewoon managed... ja wellicht dat ik met een dataset de zaak in een recordset kan gieten. Dit is dus zo'n enorm interoperabiliteits probleem. Microsoft spiegelt het allemaal zo mooi voor maar in de praktijk is VB6 moeilijk te verenigen met .NET. In productie applicaties wel te verstaan.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:42
Op zaterdag 13 april 2002 12:22 schreef paulgielens het volgende:
ADODB is dus gewoon managed...
Ben je daar zeker van? 'k zou dat wel eens willen zien...

https://fgheysels.github.io/


Verwijderd

Op zaterdag 13 april 2002 12:43 schreef whoami het volgende:
Ben je daar zeker van? 'k zou dat wel eens willen zien...
ADODB is COM, dus dat gaat gewoon via de interop..

  • Scare360
  • Registratie: Juli 2001
  • Laatst online: 07:26
vreemd dat ie bij mij onder de .NET tab staat dan :(

Verwijderd

Op zaterdag 13 april 2002 13:40 schreef paulgielens het volgende:
vreemd dat ie bij mij onder de .NET tab staat dan :(
Al gekeken waar ie staat?
code:
1
2
3
4
5
<Reference
   Name = "adodb"
   AssemblyName = "adodb"
   HintPath = "..\Program Files\Microsoft.NET\Primary Interop Assemblies\adodb.dll"
/>


:Y)

Verwijderd

interop'ed objects draaien niet in de CLR, dus is nooit managed code.

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
like this ?
code:
1
2
DataSet XmlDataSet = new DataSet();
XmlDataSet.ReadXml(Server.MapPath("xmldocument.xml"));
Pagina: 1