Solved

DBGrid problem

Posted on 2006-10-24
3
176 Views
Last Modified: 2010-04-04
Im using dbgrid to show pictures from database, and Labels to show picture balance

but every picture has wrong balance from database
First picture balance 2000, second picture balance 100 - BUT I SEE 1000 :/

if i click on picture balance corrects to 100

How to remove this error?

procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
  Index: Integer);
begin
  JPEG := TJPEGImage.Create;
  tmp  := TMemoryStream.Create;
  try

    if AdoQuery1.FieldByName('balansas').Value = null then Label20.Caption := ''
    else Label20.Caption := AdoQuery1.FieldByName('balansas').Value;

    if not TBlobField(ADOQuery1.FieldByName('nuotrauka')).IsNull then  //is there a picture?
    begin
      TBlobField(ADOQuery1.Fieldbyname('nuotrauka')).SaveToStream(tmp);
      tmp.Seek(0, soFromBeginning);
      JPEG.LoadFromStream(tmp);
      DBImage1.Picture.Assign(JPEG);
      DBImage1.visible := true;
    end
      else
    begin
      if DBImage1.Picture <> nil then
      begin
        DBImage1.Picture := nil;
      end;
    end;
  finally
    JPEG.Free;
    tmp.Free;
  end;
end;
0
Comment
Question by:selas
3 Comments
 
LVL 17

Expert Comment

by:TheRealLoki
ID: 17800675
what's a balance?
can you show us your SQL?
is it perhaps using the wrong kind of "join"?
Do you have an event (eg. image1.OnChange) that is setting the balance (incorrectly) when you load the image from the blob?
(perhaps change your procedure to do
    if AdoQuery1.FieldByName('balansas').Value = null then Label20.Caption := ''
    else Label20.Caption := AdoQuery1.FieldByName('balansas').Value;
at the end instead)
0
 
LVL 17

Accepted Solution

by:
mokule earned 500 total points
ID: 17803449
Try to change this
   if AdoQuery1.FieldByName('balansas').Value = null then Label20.Caption := ''
    else Label20.Caption := AdoQuery1.FieldByName('balansas').Value;
into this
   if AdoQuery1.FieldByName('balansas').IsNull then Label20.Caption := ''
    else Label20.Caption := AdoQuery1.FieldByName('balansas').Value;
0
 
LVL 6

Expert Comment

by:wimmeyvaert
ID: 17804192
Or maybe you can change :

if AdoQuery1.FieldByName('balansas').Value = null then Label20.Caption := ''

into

if AdoQuery1.FieldByName('balansas').Value = UnAssigned then Label20.Caption := ''


Best regards,

The Mayor.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
Learn how to create flexible layouts using relative units in CSS.  New relative units added in CSS3 include vw(viewports width), vh(viewports height), vmin(minimum of viewports height and width), and vmax (maximum of viewports height and width).

895 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now