Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 20 of 21 total
Thread db to be delivered on dvd
Thu, Jun 15 2006 11:11 AMPermanent Link

Marc Pelletier
"Uffe Kousgaard" <oh@no.no> wrote in
news:E18613B9-5405-4B68-865D-DCA1AD23AE62@news.elevatesoft.com:

> Have you considered to use large USB harddisks for deployment? 50
> DVD's is appr. 250 GB, which costs 200 USD or so.
>

Yes we did but we reasoned that many large companies (our clients) would
still want an archived version of the data. Hard drives are not considered
suitable for long term storage. We are anxiously waiting for dual layer or
blu ray or whatever the next generation will be to become standardized.

cheers

Marc
Thu, Jun 15 2006 11:11 AMPermanent Link

Marc Pelletier
"Clive" <dd@dddd.com> wrote in news:85E7E874-DC7D-4DAA-8654-528887706CB3
@news.elevatesoft.com:

> I have been down a similar track before.. Firstly storing blobs in a
> database was not good, what I did was to just store a thumbnail in the
> database and store a reference to the actual disk file name.
>

Can you expand on why the blobs in db didn't work for you?

cheers

Marc
Thu, Jun 15 2006 1:41 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Marc,

<< But this brings up another issue, how do I determine the size of the
current table? >>

You can use the TDBISAMTable.TableSize property to do so:

http://www.elevatesoft.com/dbisam4d5_tdbisamtable_tablesize.htm

<< The images themselves are already compressed so I should be able to
predict the table size based on the fields and number of images,
right? >>

Yes, but you need to make sure to round the image sizes to the table's block
size:

http://www.elevatesoft.com/dbisam4d5_tdbisamtable_blobblocksize.htm

That will replicate how the images will be stored in the BLB file in terms
of size.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Jun 15 2006 1:41 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< Interesting approach - but 50 DVD's worth of data - 250Gb say....... >>

I was thinking along the lines of the textual data.  I wasn't aware that he
wanted to store the images in the tables also. Smiley

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Jun 15 2006 2:12 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


Naturally I can't find it now but I sort of remember a post saying that it wasn't worth increasing the BlobBlockSize over a certain level (4096?) because it wouldn't improve performance at all.

Roy Lambert
Thu, Jun 15 2006 4:32 PMPermanent Link

"Mike Shkolnik"
Hi,

> Interesting. I've haven't played much with images. Is there
> a procedure or method anywhere Delphi or windows that can
> take any image and convert it into a thumbnail
MS Windows XP/2003 can create the thumb.db file with thumbnails of images in
folder

This thumb.db is the compound file where every picture stored (result of
IExtractImage interface - so there you may store the preview MS Word or MS
Excel documents too)
--
With best regards, Mike Shkolnik
E-mail: mshkolnik@scalabium.com
WEB: http://www.scalabium.com

Fri, Jun 16 2006 5:55 AMPermanent Link

"Ian Branch"
Ahhhh.  So that's what that thing is....<bg>
Fri, Jun 16 2006 12:50 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< Naturally I can't find it now but I sort of remember a post saying that
it wasn't worth increasing the BlobBlockSize over a certain level (4096?)
because it wouldn't improve performance at all. >>

I don't think I've ever said anything like that.  What I might have said was
that after a certain point, the increased size of the .BLB due to all of the
slack space caused by a very large block size (>= 8k) might cancel out any
time savings due to the larger block reads and reduced number of reads in
general.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Jun 16 2006 1:37 PMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


Yeah it was something like that Smiley

Roy Lambert
Mon, Jun 19 2006 5:02 AMPermanent Link

"Clive"
Converting jpegs to thumbnails isnt too dificult, basically read jpeg, then
stretchdraw it onto a thumbnail of your size.
Delphi doesnt do it for you, Heres a proc I wrote a few years back that
works with paradox, would be pretty simple to convert to use dbisam
Just use TDBISAMBlobStream instead of TBlobstream.


Function rebuildthumbnail(dataset : TDataSet) : Boolean;
var
 bs : TBlobStream;
 sKey : String;
 Jpeg : TJpegImage;
 JThumb : TJpegImage;
 aBit : TBitmap;
 aThumb : TBitmap;
 rRatio : Real;
 aRect : TRect;
 bRtn,bBs : Boolean;
Begin
 Jpeg := TJpegImage.Create;
 Jthumb := TJpegImage.Create;
 aBit := TBitmap.Create;
 aThumb := TBitmap.Create;
 bBs := True;
 bs := nil;

 Try
   try
     dataset.Edit;
     bs :=
TBlobstream.create(TBlobfield(dataset.FieldByName('thumbnail')),bmWrite);
     sKey := GetAppPath + 'images\' +
dataset.FieldByName('photo_key').AsString + '.jpg';
   except
     bBs := False;
     brtn := False;
     rebuildthumbnail := False;
     exit;
   end;
   Jpeg.Scale := jsFullSize;
   Jpeg.Performance :=jpBestSpeed;
   Jpeg.LoadFromFile(sKey);
   Jpeg.PixelFormat := jf24Bit;
   aBit.PixelFormat := pf24bit;
   aBit.Assign(TGraphic(Jpeg));
   aRect.Left := 0;
   aRect.Top := 0;

   if Jpeg.Width >= Jpeg.Height then
   Begin
     aThumb.Width := 160;
     rRatio := jpeg.height / jpeg.width;
     aThumb.Height := Trunc(160 * rRatio);
   end
   Else
   Begin
     aThumb.Height := 160;
     rRatio := jpeg.width / jpeg.height;
     aThumb.Width := Trunc(160 * rRatio);
   end;

   aRect.Right := aThumb.Width;
   aRect.Bottom := aThumb.Height;

   aThumb.PixelFormat := pf24bit;
   aThumb.Canvas.StretchDraw(aRect,aBit);
   frm_wait.SetMessage('Stretch bitmap',TRUE);
   JThumb.Pixelformat := jf24Bit;
   JThumb.Assign(athumb);
   JThumb.Pixelformat := jf24Bit;
   JThumb.CompressionQuality := GetRegInt('Settings','Image Quality',80);
   JThumb.Compress;
   try
     JThumb.SaveToStream(bs);
     bRtn := True;
   except
     ShowMessage('Unable to save thumbnail, check to ensure the database is
not read-only' + char(10) +
                 'If you are running from read only media such as a CD-ROM
you will be unable to update your database');
     brtn := False;
   end;
 Finally
   Jpeg.free;
   aBit.free;
   aThumb.free;
   jThumb.Free;
   if bBs then
     bs.free;
 end;

 if brtn then
   dataset.Post
 else
   dataset.Cancel;

 Rebuildthumbnail := brtn;

end;


"Sean McCall" <NoSpam@nowhere.com> wrote in message
news:2CD5FB2A-FD2B-4CAA-A329-6866DAD5FD93@news.elevatesoft.com...
> Clive,
>
> Interesting. I've haven't played much with images. Is there a procedure or
> method anywhere Delphi or windows that can take any image and convert it
> into a thumbnail or do you have some code you could share?
>
> Thanks,
>
> Sean
>
> Clive wrote:
>
>> Hi,
>> I have been down a similar track before.. Firstly storing blobs in a
>> database was not good, what I did was to just store a thumbnail in the
>> database and store a reference to the actual disk file name.
>>
>> For multiple disks this process works fine, the user can view the
>> thumbnail without the disk in, but gets prompted for correct disk when
>> not found.
>>
>>
>> "Marc Pelletier" <marc@stopspam.goldak.ca> wrote in message
>> news:Xns97E25C2D1AEE8mmpp1234.dd@64.65.248.118...
>>
>>>Hello,
>>>
>>>I am a fairly beginner level db programmer, and am examining dbisam for
>>>use
>>>in a new application with LOTS of data. The data are primarily images,
>>>compressed in jpeg4-2-1 with timestamps for filenames. Right now I just
>>>store them in directories of ~150 images each (ie 1 minute), and if I
>>>can't
>>>find the required directory I prompt the user to put in the proper disk.
>>>This involves building some rather large filelists on the fly, and is
>>>just
>>>generally awkward. A medium sized datasets will include 50 dvd's.
>>>
>>>The natural organization of the data is by flight and line. I want to
>>>create a table containing flight, line, start and end times, and use this
>>>to generate queries that will return the images by line ( or part
>>>thereof).
>>>Ideally the linelist information would be on the user's machine and the
>>>user would be prompted to insert the appropriate disk when necessary.
>>>This
>>>seems to break the "everything in one directory" dbIsam model. Is it
>>>doable
>>>with dbisam?
>>>
>>>Maybe the solution is that its not all one database? I could treat each
>>>disk as a database somehow?
>>>
>>>Ideas? Suggestions?
>>>
>>>Thanks,
>>>
>>>Marc Pelletier
>>>Goldak Airborne Surveys
>>
>>
« Previous PagePage 2 of 3Next Page »
Jump to Page:  1 2 3
Image