Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Parametrized update command
Message
From
02/04/2019 18:12:05
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01667828
Message ID:
01667860
Views:
39
>>>>>>>>Do the variables cNewFld1Val and cNewFld2Val have to be Private? I have them Local and they are in scope with the above command. But I am not getting results I expect. So, I thought maybe this is the problem.
>>>>>>>>Please let me know. Thanks.
>>>>>>>
>>>>>>>Yes, they need to be private.
>>>>>>
>>>>>>Even though the variable are declared and assigned right before the string cSqlUpdate is created?
>>>>>>How come I don't get an error?
>>>>>
>>>>>Undeclared variables are private by default.
>>>>
>>>>But I do have them declared as LOCAL
>>>
>>>Then you're doing sqlexec() in the same method/proc/function. Most folks delegate it to some other place, where they have centralized the call, error handling, logging etc. For those cases they have to be private so they are visible in the called code.
>>
>>Right, that's how I do. I set the necessary parameters, and call my DoSql method.
>
>I see. So, we do it differently. But as long as I do it "my" way, I can declare the variables as LOCAL.

Your way doesn't assist with debugging if something is amiss with the SQL
After years of agonizing and guessing, I wrote this:
*-- Execute SQL Command and display errors, if any
PARAMETERS pc_ConnHandle
PRIVATE ll_return, ln_exec,la_error
ll_return = .T.
ln_exec = SQLEXEC(pc_ConnHandle)
IF ln_exec < 1
  ll_return = .F.
  WAIT WINDOW "SQL ERROR Has Occurred "
  = AERROR(la_error)
  WAIT WINDOW la_error(1,2)
ENDIF
RETURN ll_return
>Thank you.
>PS I may change my code later to have a "cenralized" function.
Anyone who does not go overboard- deserves to.
Malcolm Forbes, Sr.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform