Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


COM+ raderar blanksteg

Postades av 2003-11-24 15:11:52 - Jesper Abrahamsson, i forum visual studio.NET IDE, Tråden har 8 Kommentarer och lästs av 870 personer

Hej,

Har postat motsvarande fråga på microsoft.public.dotnet.framework.adonet men har inte fått några svar.

Mitt problem är att jag har en komponent som hämtar ett dataset från en Oracle-databas (8.1.7) med hjälp av en DataAdapter och sedan gör jag mina ändringar i datasetet och sparar tillbaka dessa med en DataAdapter och en CommandBuilder (GetUpdateCommand). Vid själva uppdateringen har mitt problem dykt upp och jag får felmeddelandet "Concurrency violation: the UpdateCommand affected 0 records.". Felet i sig beror på att ett fält i databasen (Varchar2(20)) är utfyllt med blanksteg och när jag kör komponenten i COM+ trimmas dessa blanksteg bort vid hämtningen vilket innebär att när ändringarna skall sparas så får jag en mismatch på blankstegsfältet eftersom det inte längre har samma innehåll.

Jag har provat lite att skapa ett eget UpdateCommand där jag kör Trim() på alla variabler, men det fungerar inte:

<code>oDA.UpdateCommand.CommandText = oDA.UpdateCommand.CommandText.Replace("?", "Trim(?)")</code>

Självklart kan man tycka att det inte skall ligga massa blanksteg i fältet, men det är kundens databas och jag vill helst lösa detta via egen kod.

Tack på förhand!

/Jeppe


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 15:22:35 - Fredrik Normén

Det jag kommer med nu är inte en snygg lösning, men skulle kunna lösa ditt problem för tillfället. Se till att du fyller upp de kolumner som ska innehålla blanksteg med blanksteg innan du kör en update.

Du skulle även kunna tvinga DataSetet att uppdatera poster även om du först får ett concurrency valiation. Se bara till så inga andra system är beroende av att fältet innehåller massor av blanksteg.

/Fredrik Normén NSQUARED2
http://www.nsquared2.net


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 15:35:50 - Jesper Abrahamsson

Hej,

Problemet är att fälten inte alltid är utfyllda. Tabellen är ganska känslig och hårt belastad också, så jag kan inte släppa igenom mina uppdateringar om jag fått en krock.

/Jeppe


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 15:52:20 - Fredrik Normén

hmm.. Testa med att sätta parameterns SourceVersion till DataRowVersion.Original.

<code>
myParm.SourceVersion = DataRowVersion.Original
</code>

REDIGERAT:

Jag har haft samma problem en gång i tiden, att kolumner blir blanka. Jag löste problemet genom att använda FillSchema med SchemaType.Source innan jag fyllde mitt DataSet.


/Fredrik Normén NSQUARED2
http://www.nsquared2.net


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 16:04:00 - Jesper Abrahamsson

Ingen skillnad. Gjorde följande tillägg:

<code>
Dim oParam As OleDb.OleDbParameter

For Each oParam In oDA.UpdateCommand.Parameters
oParam.SourceVersion = DataRowVersion.Original
Next
</code>

/Jeppe


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 16:10:29 - Jesper Abrahamsson

Blir tyvärr samma fel. Har denna kod i Fetch-steget (med tillägg av FillSchema):

<code>
oDA = New OleDb.OleDbDataAdapter("SELECT * FROM " & sDB & "." & sTable , sConnString)
oDA.FillSchema(oDS, SchemaType.Source)
oDA.Fill(oDS, sTable)
</code>

/Jeppe


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-24 17:40:43 - Fredrik Normén

Jag kan tyvärr inte hjälpa dig mer :(

Såg på nätet att det är andra som har precis samma fel som dig.
Tyvärr är det ingen som har kunnat svarat på deras inlägg :(

Använder du Microsoft Oracle provider? Om, så kan du allitd försöka skicka mail till MS och fråga dom. Om du inte har en email adress till någon av dom på ADO.Net teamet så säg till så ska jag ge dig en adress.

/Fredrik Normén NSQUARED2
http://www.nsquared2.net


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-11-25 08:58:57 - Jesper Abrahamsson

Inte mycket att göra. Tackar för hjälpen ändå. :)

Jag använder tyvärr OleDb eftersom OracleClient kräver Oracle 9 och providern i VS 2002 hade inget stöd för distribuerade transaktioner.

Verkar alltså som att jag får försöka få kunden att inte ha massa blanksteg i databasen...

/Jeppe


Svara

Sv: COM+ raderar blanksteg

Postades av 2003-12-01 15:20:30 - Jesper Abrahamsson

Hej,

Här kommer en uppdatering på nuvarande problem-status:

Har funnit att XML-standarden inte stödjer mellanslag utan tas bort och vad jag har förstått så serialiseras alla data när de skickas till och från en COM+-komponent och därmed försvinner alltså mellanslagen.

Här är en kodsnutt som visar detta:

<code>
Dim ds As New DataSet
Dim sr As New System.IO.StringReader("<NewDataSet><MyTable><MyField> </MyField></MyTable></NewDataSet>")
Dim result As String

ds.ReadXml(sr)

result = ds.Tables(0).Rows(0).Item("MyField") ' <---- Mellanslaget borta
</code>

Kommer nu att lämna alternativet med DataAdapter och CommandBuilder, men om någon kommer på någon annan lösning på problemet så är alla förslag välkomna.

/Jeppe


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
574
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies