Announcement

Collapse
No announcement yet.

ADO im DBGrid und Formatierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ADO im DBGrid und Formatierung

    Hallo,

    gibt es irgendeine Möglichkeit, bei der Darstellung von Datensäzten in einem DBGrid die Werte, die als money oder BCD mit Nachkommastellen in der Datenbank abgelegt sind, auch so darstellen zu lassen?

    Bei allem, was ich probiert habe, schmeisst ADO mir bei glatten Zahlen die Nachkommastellen weg.

    Ich benutze Delphi 7 und MS-SQL-Server.

    Dank im Voraus!

  • #2
    Hallo,

    selbstverständlich, wobei es im Detail davon abhängt, ob dbGo (alias <b>TADODataSet</b>) verwendet wird oder nicht. Im Fall von TADODataSet müssen nur im Feld-Editor (Doppelklick auf TADODataSet) die so genannten <i>persistenten TField-Instanzen</i> angezeigt werden, so dass dann für jede Spalte im Objektinspektor die Darstellung konfiguriert werden kann (in diesem Fall die Eigenschaft <b>currency</b>).

    Im praktischen Beispiel sieht das dann so aus:
    <pre>
    USE tempdb
    GO
    CREATE TABLE EuroTest
    (
    Betrag DECIMAL(9,3) NOT NULL
    )
    INSERT INTO EuroTest (Betrag) VALUES (0.50)
    INSERT INTO EuroTest (Betrag) VALUES (1.50)
    INSERT INTO EuroTest (Betrag) VALUES (1000.50)
    GO
    SELECT * FROM EuroTest
    GO
    </pre>
    Konfiguration im Objektinspektor:
    <pre>
    <b>object</b> Form1: TForm1
    Left = 192
    Top = 114
    Width = 870
    Height = 640
    Caption = <font color="#9933CC">'Form1'</font>
    Color = clBtnFace
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = <font color="#9933CC">'MS Sans Serif'</font>
    Font.Style = []
    OldCreateOrder = False
    PixelsPerInch = 96
    TextHeight = 13
    <b>object</b> DBGrid1: TDBGrid
    Left = 24
    Top = 64
    Width = 320
    Height = 120
    DataSource = DataSource1
    TabOrder = 0
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = <font color="#9933CC">'MS Sans Serif'</font>
    TitleFont.Style = []
    <b>end</b>
    <b>object</b> ADOConnection1: TADOConnection
    Connected = True
    ConnectionString =
    <font color="#9933CC">'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security In'</font> +
    <font color="#9933CC">'fo=False;Initial Catalog=tempdb;Data Source=(local)'</font>
    LoginPrompt = False
    Provider = <font color="#9933CC">'SQLOLEDB.1'</font>
    Left = 24
    Top = 16
    <b>end</b>
    <b>object</b> ADODataSet1: TADODataSet
    Active = True
    Connection = ADOConnection1
    CursorType = ctStatic
    CommandText = <font color="#9933CC">'select * from EuroTest'</font>
    Parameters = &lt;&gt;
    Left = 64
    Top = 16
    <b>object</b> ADODataSet1Betrag: TBCDField
    FieldName = <font color="#9933CC">'Betrag'</font>
    currency = True
    Precision = 9
    Size = 3
    <b>end</b>
    <b>end</b>
    <b>object</b> DataSource1: TDataSource
    DataSet = ADODataSet1
    Left = 104
    Top = 16
    <b>end</b>
    <b>end</b>
    </pre>
    Siehe auch <i>http://www.entwickler.com/itr/features/psecom,id,112,nodeid,77.html</i&gt

    Comment


    • #3
      Hallo,

      ja, es wird TADODataSet verwendet; und mit dem Feld-Editor geht es jetzt auch prima...
      Nur dumm, dass der im Objekt-Inspektor nicht auftaucht. Das hätte doch nicht unerheblich Zeit gespart

      Ich konnte mir auch nicht wirklich vorstellen, dass ADO das nicht anbietet.

      Viele Dank für den Tip

      Comment

      Working...
      X