Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Executing two command in one string
Message
From
22/03/2013 08:18:12
Dragan Nedeljkovich (Online)
Now officially retired
Zrenjanin, Serbia
 
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 9 SP1
Miscellaneous
Thread ID:
01568990
Message ID:
01569014
Views:
42
>>>Hi,
>>>
>>>I think I can sent two command to SQL Server from VFP app (using SQLEXEC()) but I am not sure what separator to use. Should it be semi colon? For example if I want to alter a column and then set a value into this column, can I do the following:
>>>
>>>
>>>cSqlCmd = "alter table MyTable alter column MyFld1 char(30); update MyTable set MyFld1 = repl('0',30) where len(MyFld1) = 0"
>>>nRetunr = SQLEXEC(nConn, cSqlCmd)
>>>
>>>
>>>Will the above work? TIA
>>>
>>>UPDATE. I ran it and it works.
>>
>>Yes, you can and should use semicolon. You can also use text endtext to put commands in multiple lines to improve readability.
>
>What would be an exmaple of my string above using 'text / endtext'?
text to cSqlCmd textmerge
alter table MyTable alter column MyFld1 char(30); 

update MyTable set MyFld1 = repl('0',30)
   where len(MyFld1) = 0
endtext
nRetunr = SQLEXEC(nConn, cSqlCmd)
It runs the same, but it's much easier to maintain. Consider the case when your nReturnr goes over 20 (it's the number of returned cursors). You can send kilobytes of text in a SQL command, and retrieve many cursors all in one go. These kilobytes of TSQL script would be very hard to maintain if they were built with string concatenation. Text/endtext enables you to have a script laid out as text - with all the benefits of textmerge. My life would be much more complicated without it.

back to same old

the first online autobiography, unfinished by design
What, me reckless? I'm full of recks!
Balkans, eh? Count them.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform