petterg Skrevet 21. juli 2013 Del Skrevet 21. juli 2013 (endret) Jeg prøver meg med ADO objekter for første gang. Jeg har et recordset med de ønskede data og får til å hente ut data som jeg vil fra dette lokalt. Men jeg ønsker å sende dette over nett og tolke dataene på den andre maskinen. Hvordan får man serialisert et ADO objekt? Det nærmeste jeg har kommet er $Recordset.save($stream) og deretter $stream.read(). Da får jeg en binær representasjon av objektet. Men $recoverStream.write() klarer ikke å lese disse binære dataene (står også i dokumentasjonen at den ikke kan det), så jeg får ikke reversert prosessen etter nettoverføringen. http://msdn.microsof...v=vs.85%29.aspx Hva er trikset for å sende et ADO objekt? Må man lese ut hvert enkelt element i recordsettet, sette sammen i en strøm med separatorer og parse det i andre enden? Edit: Her er en som har gjort akkurat det jeg prøver på i .net http://www.codeproject.com/Articles/15724/ADODB-Serialization Jeg får feilmelding hvis jeg prøver å sette stream.Type, men dok sier at type settes automagisk til binær dersom første skriving til strømmen er binær. Altså skulle ikke det være utslagsgivende. Akkurat samme feil kommer på write. Feilmeldingen er så givende som The requested action with this object has failed. Endret 21. juli 2013 av petterg Lenke til kommentar
GeirGrusom Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 Hvilket språk bruker du? Lenke til kommentar
Harald Staff Skrevet 23. juli 2013 Del Skrevet 23. juli 2013 Hei I "klassisk VB" / VBA er det et optional valg å lagre et recordset som XML, slik: rst.Save "C:\Temp\a.xml", adPersistXML se om dette også er tilgjengelig i hva du enn bruker. Nøkkelen ligger nok i Save. Tilsvarende finnes det en grei metode å åpne senere: rst.Open "C:\Temp\a.xml" HTH. Beste hilsen Harald Lenke til kommentar
petterg Skrevet 24. juli 2013 Forfatter Del Skrevet 24. juli 2013 Hadde håpet å slippe å gå veien om tempfil. For server er det greit, men ikke for klient. Det er sensitive data så alle spor bør være borte fra klientmaskina når bruker lukker programmet. rst.Open krever jo at det ligger en ukryptert tempfil på klienten. En mulighet er kanskje å sende fila i et truecrypt volum som klienten kan mounte med portabel versjon av truecrypt, men da er det vel omtrent like dumt å loope igjennom recordsettet og lage en base64-kodet streng som må parses på klienten. Merkelig at rst.save støtter skriving til en binær fil / stream, men at rst.open kun klarer å lese dette dersom kilden er en fil. Detter hva jeg kan lese meg til er det nettopp dette .read skulle være godt for. Skriver i autoit. Lenke til kommentar
GeirGrusom Skrevet 27. juli 2013 Del Skrevet 27. juli 2013 Det som er vanlig er å lage en proxy-service. Ofte gjøres dette med HTTP og serialisering av XML eller JSON ved at man lager dataklasser som fylles opp av recordsettet og serveres til en ekstern tjeneste som XML eller JSON som er enkelt å deserialisere på andre siden. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå