[V4RB] RecID & picture fields

Pedro fp lists at pedro.Net.au
Fri Sep 10 14:33:18 CDT 2004


G'day Folks

Thanks for replies thus far.

On 09/09/2004, at 5:04 PM, Francois Van Lerberghe wrote:

> RecID is not an uMediumField. It's an ULongField.
> Try this :
>         dRow( i ).itemData = data.ULongField( "RecID" ).value

That was plain daft of me. I tried ULongField on a punt just after I  
sent my question & that worked :)

> This code seems to be correct. I think you must test nil objet before.
> Try this :
>   dim tempPicture As Picture
>   dim pictureField As VPicture
>   tempPicture = data.PictureField( "photo" )
>   if pictureField <> nil
>     tempPicture = pictureField.GetPicture
>   end if
>   if tempPicture <> nil then
>     dRow( i ).icon = tempPicture
>   end if
>
> Have you set the currentPosition to the record you want to retrieve?

Yes. The block of code accessing my cursor is ...

       b = data.firstRecord()

       for i = 1 to data.recordCount ' Loop through the cursor to  
populate lists.

         dRow( i ) = new dataRow

         dRow( i ).itemData = data.uLongField( "RecID" ).value
         dRow( i ).icon = data.PictureField( "photo" ).getPicture ' Set  
photo icon.
         s(0) = data.stringField( "salutation" ).getString
         s(1) = data.stringField( "givenName" ).getString
         s(2) = data.stringField( "surname" ).getString
         dRow( i ).name = s
         dRow( i ).payrollNumber = data.stringField( "payNumber"  
).getString

         b = data.nextRecord()

       next

Now that the line getting the RecID is fixed the only part not working  
is the line getting the picture.


>>  me.fPhoto.setPicture( withFile.openAsPicture, 80 )
>
> You could test nil object with withFile.openAsPicture, just in case...

I have tried that but it hasn't made any difference. I'm now convinced  
that the problem is in getting the pictures into the database. When a  
new database is created the blob file is 100 KB. After importing a  
folder containing 329 files totaling 18.5 MB the blob file is still 100  
KB.

The method importing the files, with the test for nil on  
withFile.openAsPicture & also with the test for the file being a JPEG  
moved into that method, again is ...

Function newPersonFromJPEG( withFile As folderItem ) As integer
   dim dataString As string, iDate As new date, i, ln As integer, gt As  
boGlobals
   dim temp As picture

   if withFile.type = "image/jpeg" then
     ' do the stuff

     dataString = left( withFile.name, len( withFile.name ) - 4 )
     writeLog "dataString: " + dataString

     gt = winMain.mDatabase.tGlobals

     ln = gt.lastAdded + 1

     me.setBlank

     me.fLine.value = ln
     me.fDateAdded.set( iDate.year, iDate.month, iDate.day )

     for i = 0 to 1
       me.fName( i ).value = titlecase( nthField( dataString, " ", i + 1  
) )
     next

     if countFields( dataString, " " ) > 2 then
       me.fPayNumber.value = nthField( dataString, " ", 3 )
     end if

     temp = withFile.openAsPicture
     if temp <> nil then
       me.fPhoto.setPicture( temp, 80 )
     end if

     me.fLastModified.setDate( iDate.year, iDate.month, iDate.day )
     me.fLastModified.setTime( iDate.hour, iDate.minute, iDate.second )

     me.addRecord

     me.flush

     gt.lastAdded = ln

     writeLog "Imported!"

     return 1
   else
     return 0
   end if
End Function

Once again, any clues? It's important that I sort this one as the  
images are the primary data in this project.

Concerning Erne's suggestion that I need to convert to PICT first. The  
RB Language Reference clearly state that openAsPicture opens any image  
file that QuickTime can handle as a PICT so I don't believe that's the  
problem.


Cheers, Pedro :-)

Web: <http://www.pedro.net.au>                    PGP Key ID: 387CD96F
Instant messaging...  AIM: bandidoOfOz  ICQ: 27671678  Jabber: pedrofp
                       MSN: mail at pedro.net.au           Yahoo: pedro_fp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
~~~~
"The above message is encrypted with double rot13 encoding. Any  
unauthorized
attempt to decrypt it will be prosecuted to the full extent of the law."
                                                               origin  
unknown



More information about the Valentina mailing list