Back to getting vServer Office to execute in LiveCode Server Scripts on my IIS 5.1 web server

Mike Bonner bonnmike at gmail.com
Fri Mar 9 08:39:07 CST 2012


Ok this one. (for vserver only using lc server)

Same as mentioned, declare the commands and functions first, seems more
reliable, and then, removed the gclient of this stack check removed the
portion for else, and left the code for gclient of this stack = true and am
working again.


<?lc
local mDatabase,mConn

on DatabaseCreate
    put VConnection_Constructor( "localhost", "sa", "sa") into mConn
    get VConnection_Open( mConn )
    get ShowError()
    put VDatabase_Constructor( mConn ) into mDatabase

  get VDatabase_Open( mDatabase, "database1" )
   get ShowError()
   if VDatabase_ErrNumber( mDatabase ) is not "0" then
    if VDatabase_ErrNumber( mDatabase ) is not "532480" then
      get VDatabase_Create( mDatabase, "Database1", "kDscDatBlbInd" )
      get showError()
      CreateStructure
    else
      answer VDatabase_ErrString( mDatabase )
      close the defaultStack
    end if
  end if

  put VDatabase_Table( mDatabase, "Person" ) into mPerson
  put VTable_Field( mPerson, "FirstName" )  into mFirstName
  put VTable_Field( mPerson, "LastName" )  into mLastName
  put VTable_Field( mPerson, "BirthDate" )  into mBirthDate

end DatabaseCreate

on DatabaseClose
    get VDatabase_Close( mDatabase )
    put VDatabase_Destructor( mDatabase ) into mDatabase
end DatabaseClose

on CreateStructure
   put VDatabase_CreateTable(mDatabase, "Person") into pTable

   get VTable_CreateVarcharField( pTable, "Name", 1022, "fIndexed" )
   get VTable_CreateVarcharField( pTable, "LName", 1022, "fIndexed" )
   get VTable_CreateDateField( pTable, "BirthDate", "fIndexed" )
end CreateStructure

function ShowError
  put Valentina_ErrNumber() into errCode
  put Valentina_ErrString() into errString

  if errCode <> 0 then
    show message box
    put errString into message
  end if
end ShowError

   -- this section would be in opencard in a stack
   get valentina_initclient()
   get showError()
   databasecreate

-- this section would be in closecard in a stack
   databaseClose
   get valentina_shutdown
   get showError
?>

On Fri, Mar 9, 2012 at 7:31 AM, Mike Bonner <bonnmike at gmail.com> wrote:

> Ok, so thats the wrong one too. *cough*  Somebody needs more sleep!  Will
> get bck to a full working revision and post it once I have the thing solid
> again.
>
> (for 1, you can't really check the gclient of the stack like I show in the
> script) DOH
>
>
> On Fri, Mar 9, 2012 at 7:15 AM, Mike Bonner <bonnmike at gmail.com> wrote:
>
>> I've been messing around so much I don't recall which version of the
>> livecode-server script I sent you.  Looking at the one you posted I think I
>> sent the wrong one!
>>
>> The order is wrong, you'll want to declare all the commands and functions
>> FIRST and then actually call them, otherwise they don't yet exist in memory
>> yet and this can cause issues. (at least so it seems to me.
>>
>> The revised script is here. It doesn't do much, just tries to connect,
>> determines if the open failed, if it did, creates the db and structure
>> instead, then closes itself out.
>>
>>
>> --declare all handlers first
>> on DatabaseCreate
>> if the gClient of this stack is true then
>>     put VConnection_Constructor( "localhost", "sa", "sa") into mConn
>>     get VConnection_Open( mConn )
>>    get ShowError()
>>     put VDatabase_Constructor( mConn ) into mDatabase
>>   else
>>     put VDatabase_Constructor() into mDatabase
>>   end if
>>
>>   get VDatabase_Open( mDatabase, "database1" )
>>    get ShowError()
>>   if VDatabase_ErrNumber( mDatabase ) is not "0" then
>>     if VDatabase_ErrNumber( mDatabase ) is not "532480" then
>>       get VDatabase_Create( mDatabase, "Database1", "kDscDatBlbInd" )
>>       get showError()
>>       CreateStructure
>>     else
>>       answer VDatabase_ErrString( mDatabase )
>>       close the defaultStack
>>     end if
>>   end if
>>
>>   put VDatabase_Table( mDatabase, "Person" ) into mPerson
>>   put VTable_Field( mPerson, "FirstName" )  into mFirstName
>>   put VTable_Field( mPerson, "LastName" )  into mLastName
>>   put VTable_Field( mPerson, "BirthDate" )  into mBirthDate
>>
>> end DatabaseCreate
>>
>>
>> on DatabaseClose
>>     get VDatabase_Close( mDatabase )
>>     put VDatabase_Destructor( mDatabase ) into mDatabase
>> end DatabaseClose
>>
>> on CreateStructure
>>    put VDatabase_CreateTable(mDatabase, "Person") into pTable
>>
>>    get VTable_CreateVarcharField( pTable, "Name", 1022, "fIndexed" )
>>    get VTable_CreateVarcharField( pTable, "LName", 1022, "fIndexed" )
>>    get VTable_CreateDateField( pTable, "BirthDate", "fIndexed" )
>> end CreateStructure
>>
>> function ShowError
>>   put Valentina_ErrNumber() into errCode
>>    put Valentina_ErrString() into errString
>>
>>   if errCode <> 0 then
>>     show message box
>>     put errString into message
>>   end if
>> end ShowError
>>
>> -- then go through the steps.  init, then check for error (using the
>> showError function)
>>    get valentina_initclient()
>>    get showError()
>>
>> -- call the databasecreate handler
>>    databasecreate
>> -- a curiosity check of the current contents of mDatabase && mConn
>> -- could do a showError here also
>>    put mDatabase && mConn
>>
>> -- call the databaseclose handler and shutdown, then put the result of
>> the shutdown. (should be 0)
>>    databaseClose
>>    get valentina_shutdown
>>    put it && the result
>> -- I think I mentioned, but I have vserver running in manual mode from
>> the
>> --command line so I can watch the connection establish do its thing
>> -- and disconnect, live on the console.
>> ?>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macserve.net/pipermail/valentina/attachments/20120309/44ed9f93/attachment.html>


More information about the Valentina mailing list