|
Home > Archive > SQL Anywhere ultralite > May 2005 > ulSQLE_NOERROR but still cannot access udb
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
ulSQLE_NOERROR but still cannot access udb
|
|
| handheldmaster 2005-04-27, 9:23 am |
|
Have this weird scenario that happens once in a while where
even after the Error object receives a
ULSQLCode.ulSQLE_NOERROR still the app cannot access the udb
file.
Anyway to find whats wrong ? Anyway to switch on some
tracers in the ultralite engine to analyze this some more.
btw -- the udb file is on the storage card (SD) of the
Pocket PC
My platform:
Pocket PC 2003;Appforge MVB 3.5(0633);Ultralite 8.0.2(4392)
| |
| handheldmaster 2005-04-27, 1:23 pm |
|
In a second case: The app just crashes without raising any
exceptions when trying to run the code:
Set Connection = DatabaseMgr. OpenConnection(open_
parms)
From this point onwards the udb file cannot be renamed;
copied. Gives a message that it is write protected.
just like in microsoft access we have the "exclusive lock"
ldb concept is there something similar in the
ultralite-sybase world ?
Looks like the ultralite set it to write-protect and itself
cannot access the file anymore and crashes out rather than
giving an error message or does not give error message and
just hangs.
>
> My platform:
> Pocket PC 2003;Appforge MVB 3.5(0633);Ultralite
> 8.0.2(4392)
| |
| Tom Slee 2005-04-27, 1:23 pm |
| A few questions so I understand better:
In your first case, where the app cannot access the udb file, do you
mean that the OpenConnection method succeeds with ulSQLE_NOERROR and yet
some subsequent function fails? If so, what is the function that is
failing - a Connetion.GetTable?
In your second case, where the app crashes on OpenConnection, are you
sure that it has vanished from the Running Program List? I would expect
you not to be able to access the udb file when the app is running, but
that you would be able to access it once the process is dead.
Tom Slee
Product Management.
handheldmaster wrote:[color=darkred
]
> In a second case: The app just crashes without raising any
> exceptions when trying to run the code:
>
> Set Connection = DatabaseMgr. OpenConnection(open_
parms)
>
> From this point onwards the udb file cannot be renamed;
> copied. Gives a message that it is write protected.
>
> just like in microsoft access we have the "exclusive lock"
> ldb concept is there something similar in the
> ultralite-sybase world ?
>
> Looks like the ultralite set it to write-protect and itself
> cannot access the file anymore and crashes out rather than
> giving an error message or does not give error message and
> just hangs.
>
>
>
>
| |
| handheldmaster 2005-04-27, 8:24 pm |
| > In your first case, where the app cannot access the udb
> file, do you mean that the OpenConnection method succeeds
> with ulSQLE_NOERROR and yet some subsequent function
> fails? If so, what is the function that is failing - a
> Connetion.GetTable?
Yes OpenConnection method appears to succeed and the
Connection.GetTable hangs the device
> In your second case, where the app crashes on
> OpenConnection, are you sure that it has vanished from
> the Running Program List? I would expect you not to be
> able to access the udb file when the app is running, but
> that you would be able to access it once the process is
> dead.
Yes did check the app running list/process list using
remoting tool could not see the app running. If I remove the
SD card and put it into another device the udb can be
accessed and worked with fine... so SD and udb are not
corrupt.
This can be reproduced but does seem to happen on a regular
basis.
[color=darkred]
> Tom Slee
> Product Management.
>
> handheldmaster wrote:
| |
| Tom Slee 2005-05-01, 8:25 pm |
| The most likely cause I can think of is some configuration issue, as
obviously we don't usually get this kind of error. It may be worth
unregistering and reregistering the UltraLite for AppForge component.
Here are the instructions for .NET and Crossfire -- I don't have access
to MobileVB right now so can't give the v8 plus MobileVB instructions:
1. Open a command prompt and go to
%asany8%\ultralite\u
ltraliteforMobileVB\
win32
2. Run ulmvbreg -u (this unregisters the component but .NET leaves a
few things hanging around)
3. Start .NET and create a new Crossfire project (choose a UL-compatible
target like 160x160 Palm OS)
4. Right click on the toolbox/tools palette and select "Add/Remove
Items..."
5. On the ".NET Framework Components" tab, scroll down to
ULConnectionParms
in the iAnywhere.UltraLiteIngots namespace and deselect it. Click OK
(it should no longer appear in the tools palette).
6. Shutdown .NET (it doesn't matter if you save your project)
*** this should remove all traces of the component ***
7. From the command prompt again, type ulmvbreg -r (this should
register your component)
Tom Slee
handheldmaster wrote:[color=darkred
]
>
>
> Yes OpenConnection method appears to succeed and the
> Connection.GetTable hangs the device
>
>
>
>
> Yes did check the app running list/process list using
> remoting tool could not see the app running. If I remove the
> SD card and put it into another device the udb can be
> accessed and worked with fine... so SD and udb are not
> corrupt.
>
> This can be reproduced but does seem to happen on a regular
> basis.
>
>
>
>
|
|
|
|
|