Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einen Extra Feld in DBGRIB beschreiben? (https://www.delphipraxis.net/61028-einen-extra-feld-dbgrib-beschreiben.html)

Karstadt 16. Jan 2006 08:28

Datenbank: Mysql • Version: 4 • Zugriff über: ODBC

Einen Extra Feld in DBGRIB beschreiben?
 
Hallo. Habe mier Query einen Feld in dBgrib eingebunden, 2es Feld habe ich manuel ertellt. Nun möchte ich in diesen 2 Feld (pro Datensatz) irgendwas schreiben.

wiht Query
While not Eof do
begin
dbg_status.Columns[1].Field.AsString := 'irgendwas'; //Das ist sicherlich Falsch!
Next;
end;

funktioniert bei mir leider nicht, woran liegt das? :?:

marabu 16. Jan 2006 09:02

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Hallo.

Delphi-Quellcode:
begin
  with Query do
  begin
    First;
    while not Eof do
    begin
      Edit;
      Fields[1].AsString := 'irgendwas';
      Next;
    end;
    Post;
  end;
end;
Wenn das nicht funktioniert, dann ist deine Query nicht update-fähig - oder ich habe mich vertippt. Schau nach, ob du Query.RequestLive auf TRUE gesetzt hast.

Grüße vom marabu

Karstadt 16. Jan 2006 09:25

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Hallo. Ich will nicht in eine Tabelle schreiben, sonder in DBGRIB (Zeile Temp) was reinschreiben, diese Weerte werde nicht gespeichert. Außerdem kann ich mit TQUERY nicht editieren, das ist eine Anzeige komponente :(

dfried 16. Jan 2006 09:37

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Dann musst du in deiner Query ein berechnetes Feld anlegen und im OnCalcFields Ereignis der TQuery füllen.

dataspider 16. Jan 2006 09:44

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Zitat:

Zitat von Karstadt
Außerdem kann ich mit TQUERY nicht editieren, das ist eine Anzeige komponente :(

Setzt man RequestLive auf True, erhält man eine editierbare Ergebnismenge der Datenbank.
Ansonsten OnCalcFields benutzen.

Cu, Frank

Karstadt 16. Jan 2006 09:45

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Hallo Probiere ich später aus ich habe das erstmal mit SringGrib gelöst. Danke für ihre hilfe

joachimd 16. Jan 2006 11:48

Re: Einen Extra Feld in DBGRIB beschreiben?
 
Zitat:

Zitat von Karstadt
Hallo. Ich will nicht in eine Tabelle schreiben, sonder in DBGRIB (Zeile Temp) was reinschreiben, diese Weerte werde nicht gespeichert. Außerdem kann ich mit TQUERY nicht editieren, das ist eine Anzeige komponente :(

Habe ich neulich jemanden geraten, da er keine berechneten Felder nehmen konnte: im SELECT die zusätzliche Spalte angeben, zb
SQL-Code:
SELECT a.*, 'teststring mit richtiger länge' as irgendwas FROM mytable a
und dann OnGetText der Felder dynamisch überschreiben:
Delphi-Quellcode:
type
  TForm3 = class(TForm)
    AdsConnection1: TAdsConnection;
    AdsQuery1: TAdsQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    procedure AdsQuery1AfterOpen(DataSet: TDataSet);
  private
    { Private declarations }
    procedure irgendwasGetText(Sender: TField; var Text: string; DisplayText: Boolean);
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.AdsQuery1AfterOpen(DataSet: TDataSet); begin
  TBlobField(AdsQuery1.FieldByName('irgendwas')).OnGetText:=irgendwasGetText;
end;

procedure TForm3.irgendwasGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  if SameText(Sender.FieldName,'irgendwas')
    then begin
      Text:='hallo Welt';
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz