Valentina.GetDatabaseVersion() and remote database
Stan Busk
maxprog at mac.com
Wed Mar 14 16:05:40 CDT 2007
I fully agree but that doesn't respond why 'Open' or
'GetDatabaseVersion' works when called in the middle of the
connection code and not when called from a method or a function. I
can fully reproduce here. Actually I don't mind about what
GetDatabaseVersion does right now, my main concern is finding out why
a valentina function works well in the function where I open the
connection and not on other. I took 'GetDatabaseVersion' as an
example. If you prefer forget 'GetDatabaseVersion' and take 'Open'. I
have the same exact problem with 'Open'. I get a #-39 exception on
all 'Open'.
stan
> Now I'm not sure what you're talking about. GetDatabaseVersion
> returns a value representing the db file format. If VServer opened
> it, then the file format of that database has been upgraded by
> VServer to the current file format. The only reason to use
> GetDatabaseVersion is that you are about to open a local database,
> and you want to check the file format first -- because if you let
> Valentina open it, the file format will be upgraded to the current
> one -- and you want perhaps to let the user confirm that it's okay
> to upgrade.
>
> Charles Yeomans
>
>
>
> On Mar 14, 2007, at 4:35 PM, Stan Busk wrote:
>
>> Hi,
>>
>> Yes, but when opening a remote DB you pass a FolderItem to it,
>> right? Valentina is supposed to recognize it is a remote DB as you
>> have initiated VDatabase using the server-like constructor. It
>> should work then. Anyway the point is it works on the place where
>> you open the connection but not from a function you call from
>> where you open the connection. I use global properties everywhere
>> so it should work but it doesn't. The same happen with OPEN. It
>> works from where you open the connection but not from a function
>> you call passing the folderitem. I have tried all day and no way.
>> The only possible way to open a file is thru a single method in
>> the middle of the connection code...That means none of my 15
>> schema updates can be called.
>>
>> Stan
>>
>>> I think you're missing the point of
>>> Valentina.GetDatabaseVersion. As I understand it, all that it
>>> does is to read some bytes from the file represented by the
>>> FolderItem and return the information. This functionality should
>>> work no matter how Valentina is initialized. For a remote
>>> database, you cannot of course represent a database on the server
>>> as a FolderItem, in general. Thus Valentina.GetDatabaseVersion
>>> does not make any sense in that context.
>>>
>>> Unfortunately, the VDatabase interface is misleading.
>>>
>>> Charles Yeomans
>>>
>>>
>>>
>>>
>>> On Mar 14, 2007, at 2:41 PM, Stan Busk wrote:
>>>
>>>> Hi,
>>>>
>>>> Strange. The code below works:
>>>>
>>>> dbi = mValentinaServer.DatabaseInfo(1)
>>>> myDb = new myDatabase( mVConnection )
>>>> f = new FolderItem( dbi.path, FolderItem.PathTypeShell )
>>>> DBVersion = Valentina.GetDatabaseVersion( f )
>>>>
>>>> but as soon as I call Valentina.GetDatabaseVersion( f ) from
>>>> inside a method I get a Valentina Exception #-39. In other
>>>> words, rather than calling DBVersion =
>>>> Valentina.GetDatabaseVersion( f ) directly I have that function:
>>>>
>>>> Function Database_UpdateSchema( inFile As FolderItem )
>>>> Dim DbVersion as Integer
>>>> DbVersion = Valentina.GetDatabaseVersion( inFile )
>>>> End Function
>>>>
>>>> I don't understand the point here.
>>>>
>>>> stan
>>>>
>>>>> On 12/3/07 8:18 PM, "Stan Busk" <maxprog at mac.com> wrote:
>>>>>
>>>>> Hi Stan,
>>>>>
>>>>>> Are the two last lines of the following code correct?
>>>>>>
>>>>>> ---
>>>>>> mVConnection = new VConnection( aHost, aUserName, aPassword,
>>>>>> aPort,
>>>>>> aTimeOut, aParameter )
>>>>>> mVConnection.Open()
>>>>>> mValentinaServer = new VServer( mVConnection )
>>>>>>
>>>>>> dbi = mValentinaServer.DatabaseInfo(1)
>>>>>>
>>>>>> myDb = new myDatabase( mVConnection )
>>>>>>
>>>>>> f = new FolderItem( dbi.path, FolderItem.PathTypeShell )
>>>>>>
>>>>>> DBVersion = Valentina.GetDatabaseVersion( f )
>>>>>> ---
>>>>>
>>>>> Not a fact this is correct.
>>>>> Db already should be registered under VSERVER.
>>>>>
>>>>>> I am just trying to get the served DB version. It works fine
>>>>>> when the
>>>>>> database in on localhost but I have doubts that would work on
>>>>>> remote
>>>>>> DBs as well unless Valentina is clever enough to just use the
>>>>>> DB name
>>>>>> and already know what and where to look at. It looks like the
>>>>>> Open()
>>>>>> method is already that clever.
>>>>>
>>>>> Right. Open() opens db by name as it is registered under vserver
>>>>>
>>>>>
>>>>> --
>>>>> Best regards,
>>>>>
>>>>> Ruslan Zasukhin
>>>>> VP Engineering and New Technology
>>>>> Paradigma Software, Inc
>>>>>
>>>>> Valentina - Joining Worlds of Information
>>>>> http://www.paradigmasoft.com
>>>>>
>>>>> [I feel the need: the need for speed]
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Valentina mailing list
>>>>> Valentina at lists.macserve.net
>>>>> http://lists.macserve.net/mailman/listinfo/valentina
>>>>
>>>> _______________________________________________
>>>> Valentina mailing list
>>>> Valentina at lists.macserve.net
>>>> http://lists.macserve.net/mailman/listinfo/valentina
>>>
>>> _______________________________________________
>>> Valentina mailing list
>>> Valentina at lists.macserve.net
>>> http://lists.macserve.net/mailman/listinfo/valentina
>>
>> _______________________________________________
>> Valentina mailing list
>> Valentina at lists.macserve.net
>> http://lists.macserve.net/mailman/listinfo/valentina
>
> _______________________________________________
> Valentina mailing list
> Valentina at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina
More information about the Valentina
mailing list