Solved

MSSQL UPDATEGRAM and '$'

Posted on 2002-05-21
8
294 Views
Last Modified: 2008-02-01
Here is my updategram:

<?xml version="1.0" ?>
<root xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
<updg:sync>

<updg:before>
<msj_currency_v2 currencyID="1" currencyName="US dollar" currencySymbol="s" currencyStatus="1" />
</updg:before>

<updg:after>
 <msj_currency_v2 currencyID="1" currencyName="US dollar" currencySymbol="$" currencyStatus="1" />
</updg:after>

</updg:sync>
</root>

I am posting it into the following MSSQL table:

currencyID     int     4
currencyName     varchar     100
currencySymbol     varchar     3
currencyStatus     int     4

The updategram errors when currencySymbol="$".

The error via VB updategram test app:

"disallowed implicit conversion from datatype money to datatype varchar .. use the convert function
to run this query."

How do i run the "convert function" inside an updategram???? Or is a schema required .. if so can you please provide.

The problem is posting a "$" into a varchar field via an updategram ... MSSQL tries to convert it to
datatype money and errors.

If i post "A$" or "$u" the updategram works fine.

Thanks
0
Comment
Question by:greenrc
  • 5
  • 2
8 Comments
 
LVL 5

Expert Comment

by:spcmnspff
ID: 7025116
The best way I see to handle this is with a trigger.

Inside your updategram insert this for the '~$' dollar sign.  (This may take a vb line or two to concatenate the tilda if the symble = "$".) Now create a trigger on your table like this:

Create Trigger trDollarSign ON CurencyTable Insert, Update AS

Update CT
Set CurrencySymbol = Char(36)
From CurrencyTable CT, Inserted I
WHERE CT.CurrencyID = I.CurrencyID
 AND I.CurrencySymbol = '~$'

go
0
 
LVL 5

Expert Comment

by:spcmnspff
ID: 7025126
Oops, that create trigger statement won't run use this one:

Create Trigger trDollarSign ON CurencyTable for Insert, Update AS

Update CT
Set CurrencySymbol = Char(36)
From CurrencyTable CT, Inserted I
WHERE CT.CurrencyID = I.CurrencyID
AND I.CurrencySymbol = '~$'

go
0
 
LVL 5

Expert Comment

by:spcmnspff
ID: 7025147
You could also use the more sophisticated instead of trigger here:


Create Trigger trDollarSign ON CurencyTable Instead of Insert, Update AS

Insert Into CurrencyTable
Select * from Inserted
WHERE I.CurrencySymbol <> '~$'

Insert Into CurrencyTable
(currencyID, currencyName, currencysymbol, currencyStatus)
Select  currencyID, currencyName, Char(36), currencyStatus
from Inserted
WHERE I.I.CurrencySymbol = '~$'

go
0
 
LVL 5

Accepted Solution

by:
spcmnspff earned 300 total points
ID: 7025154
Sorry once again that won't work.  Try this one:

Create Trigger trDollarSign ON CurencyTable Instead of Insert, Update AS

Insert Into CurrencyTable
Select * from Inserted I
WHERE CurrencySymbol <> '~$'

Insert Into CurrencyTable
(currencyID, currencyName, currencysymbol, currencyStatus)
Select  currencyID, currencyName, Char(36), currencyStatus
from Inserted
WHERE CurrencySymbol = '~$'
go
0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 

Author Comment

by:greenrc
ID: 7029770
going to test it out .. thanks ... get back to you soon.
0
 
LVL 5

Expert Comment

by:spcmnspff
ID: 7052281
How did this turn out?
0
 

Expert Comment

by:CleanupPing
ID: 9280472
greenrc:
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
EXPERTS:
Post your closing recommendations!  No comment means you don't care.
0
 

Author Comment

by:greenrc
ID: 9284142
worked fine .. thanks
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Everyone has problem when going to load data into Data warehouse (EDW). They all need to confirm that data quality is good but they don't no how to proceed. Microsoft has provided new task within SSIS 2008 called "Data Profiler Task". It solve th…
I have a large data set and a SSIS package. How can I load this file in multi threading?
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

911 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now