Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

DBGrid problem

Posted on 2006-10-24
3
Medium Priority
?
183 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 2000 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

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

Question has a verified solution.

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

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
This Micro Tutorial will teach you how to add a cinematic look to any film or video out there. There are very few simple steps that you will follow to do so. This will be demonstrated using Adobe Premiere Pro CS6.
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…

886 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