Hi Robert

I appreciate your response. The QuoteValue is set to true - it is what my code 
always used and relied on, but it breaks down in TS7.

Here is an extract from a TAF file from an Insert Action focussing on 2 value 
items being inserted, con_name and con_surname:

                                                                <ValueItem>
                                                                                
<Name>con_name</Name>
                                                                                
<Value><![CDATA[<@SQ><@ARG con_name><@SQ>]]></Value>
                                                                                
<QuoteValue>false</QuoteValue>
                                                                                
<IncludeIfEmpty>true</IncludeIfEmpty>
                                                                                
<NullValue>false</NullValue>
                                                                </ValueItem>
                                                                <ValueItem>
                                                                                
<Name>con_surname</Name>
                                                                                
<Value><![CDATA[<@ARG con_surname>]]></Value>
                                                                                
<QuoteValue>true</QuoteValue>
                                                                                
<IncludeIfEmpty>true</IncludeIfEmpty>
                                                                                
<NullValue>false</NullValue>
                                                                </ValueItem>

When con_surname is empty, the INSERT statement emitted by the Insert Action 
contains NULL for its value (pre TS7 it would be '').
As a workaround, I changed the processing of con_name so that QuoteValue is 
false and I added <@SQ> metatags. That works and will yield '' when con_name is 
empty.

Here is the relevant bit of debug trace:

[Query] [11]       INSERT INTO [dbo].[contact] ([con_title], [con_name], 
[con_surname], [con_position], [con_cust_id], [con_default], [con_sl_default], 
[con_disabled], [con_email], [con_telephone], [con_mobile], [con_notes]) VALUES 
('MR', '', NULL, NULL, 1944, 0, 0, 0, NULL, NULL, NULL, NULL)

Is there any way that the pre-TS7 handling of empty strings can be restored?

Kind regards
Andrej



From: Robert Shubert <rshub...@tronics.com>
Sent: Sunday, October 22, 2023 5:07 PM
To: TeraScript-Talk@terascript.com
Subject: RE: TeraScript-Talk: The effect of ANSI99SQL=true

Check the QuoteValue setting in the Insert/Update actions. If that is true an 
empty string should insert/update as '' not NULL.

From: Andrej Popovic [mailto:and...@workflowengine.co.uk]
Sent: Tuesday, October 03, 2023 6:25 AM
To: terascript-talk@terascript.com<mailto:terascript-talk@terascript.com>
Subject: TeraScript-Talk: The effect of ANSI99SQL=true

Hi everyone

A customer had recently upgraded to TeraScript 7 and had to set the server 
configuration variable ANSI99SQL to TRUE so that TeraScribe actions generate 
the correct SQL ANSII joins.

However, either the TS7 itself or the ANSI99SQL setting caused a problem with 
handling empty strings in the INSERT and UPDATE actions. With previous versions 
of TS an empty string would generate an empty string SQL value assignement, now 
it is translated into NULL. Consequently we have a database with many NULL 
values where we normally expect blank strings. This is causing problems with 
legacy code.

Is there any way to force TS7 globally to stop converting empty strings into 
NULLs in actions with ANSI99SQL=true?

Please note that custom SQL does not have this problem. We are looking for a 
solution that would avoid having to hand-revise dozens of legacy TAF files.

Many thanks for any responses in advance!

Andrej Popovic
https://workflowengine.co.uk


________________________________
To unsubscribe from this list, please send an email to 
lists...@terascript.com<mailto:lists...@terascript.com> with "unsubscribe 
terascript-talk" in the body.

________________________________
To unsubscribe from this list, please send an email to 
lists...@terascript.com<mailto:lists...@terascript.com> with "unsubscribe 
terascript-talk" in the body.

----------------------------------------
To unsubscribe from this list, please send an email to lists...@terascript.com 
with "unsubscribe terascript-talk" in the body.

Reply via email to