Object Pointer Info

Steve Kump lists at jskump.com
Fri Mar 7 13:41:32 CST 2003


Hi Charles,

I changed the replace value code to the following:

tell Listings
 set field "DealerPTR" to record id i of Dealers
replace value for field "DealerPTR" in ResultSet
end tell

And the update works properly now. The only problem remaining is when I am
in User view in the interface with Object A as Dealers and Object B as the
Listings, The first Dealer I choose does not show the list of related
listings in Object B, but the second Dealer does. When I witch Object A to
Listings and Object B to Dealers, then click on a listing, the correct
Dealer always displays in Object B.

Further, when I check the DealerPTR field value, it shows the correct dealer
Record ID.

Weird.

Steve

On 3/7/03 12:57 PM, "Charles Yeomans" <yeomans at desuetude.com> wrote:

> I'm not really fluent in Valentina Applescript --  try changing the line
> 
>            set ResultSet to (select records of Listings where {field
> "DealerID" of Listings, theDealerID})
> 
> to
> 
> set ResultSet to (select records of Listings where {field "DealerID" of
> Listings, current record of Dealers})
> 
> Charles Yeomans
> 
> On Friday, March 7, 2003, at 03:38  PM, Steve Kump wrote:
> 
>> Hi Charles,
>> 
>> I think I took that approach - I'm trying to write a script that
>> updates the
>> ObjectPTR field in my Listings table to the RecID of the Dealer table
>> record
>> that matches on the DealerID field.
>> 
>> It half works right now. Here's what I've done:
>> -------
>>     tell application "Valentina PPC"
>>         activate
>>         set DB to database "Temp"
>>         set Dealers to base object "Dealers" of DB
>>         set Listings to base object "Listings" of DB
>> 
>>         tell database "Temp"
>>             set theCursor to SQL Select "SELECT RecID,* FROM Dealers"
>>             set theCount to count of records of theCursor
>>         end tell
>> 
>>         repeat with i from 1 to theCount
>>             set current record of Dealers to record i of Dealers
>>             set position of theCursor to i
>>             set theDealerID to field "DealerID" of theCursor
>>             set theDealerName to field "DealerName" of theCursor
>>             set theDealerRecID to field "RecID" of theCursor
>>             display dialog theDealerRecID
>>             display dialog theDealerName
>> 
>>             set ResultSet to (select records of Listings where {field
>> "DealerID" of Listings, theDealerID})
>>             set theListingCount to (count of records of ResultSet)
>>             display dialog theDealerRecID
>> 
>>             tell Listings
>>                 set field "DealerPTR" to current record of Dealers
>>                 replace value for field "DealerPTR" in ResultSet
>>             end tell
>>             delete ResultSet -- free memory
>> 
>>         end repeat
>>         delete theCursor
>> 
>>     end tell
>> -------
>> 
>> The only problem is that ALL records get updated with the RecID from
>> the
>> first record in the Dealers table. Currently, I have only 2 Dealers in
>> the
>> Dealers table for testing. The dialogs display the correct values for
>> the
>> repeat loop, but the current record of the Dealers table does not seem
>> to be
>> updating.
>> 
>> It updates 1000 records every quickly with the replace value command,
>> which
>> is nice, but I'm stuck on getting the correct RecID so far.
>> 
>> Steve
>> 
>> 
>> 
>> On 3/7/03 11:52 AM, "Charles Yeomans" <yeomans at desuetude.com> wrote:
>> 
>>> 
>>> On Friday, March 7, 2003, at 01:59  PM, Steve Kump wrote:
>>> 
>>>> Hi Ruslan,
>>>> 
>>>> I read the document and found the paragraph you were talking about.
>>>> 
>>>> So, if I have 2 tables, Dealer and Listings, I create the ObjectPtr
>>>> in
>>>> the
>>>> Listings table to point to RecID of the Dealer record I want to
>>>> relate
>>>> it
>>>> to. This makes sense...when I add a new Listings records, I first get
>>>> the
>>>> related Dealer record RecID, and add it to the ObjectPtr field in the
>>>> Listing record.
>>>> 
>>>> But here is my situation:
>>>> 
>>>> I want to import several hundred records from a text file into the
>>>> Listings
>>>> table. How do I create the relationship for these records now? Do I
>>>> have to
>>>> update each one of them with the RecID for the dealer?
>>>> 
>>>> 
>>> 
>>> First, import the existing primary and foreign keys to define
>>> relationships.  Then if you decide that you want to switch to
>>> ObjectPtr
>>> fields, you can write a script that maps the relationships to
>>> ObjectPtr
>>> fields.
>>> 
>>> Charles Yeomans
>>> 
>>> _______________________________________________
>>> 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