Avatar billede thehollow Nybegynder
27. august 2004 - 15:23 Der er 3 kommentarer og
1 løsning

ValidationText from a MS Access database with Delphi 5

Hi there
I'm trying to display a ValidationText from a MS Access database with Delphi 5. But I don't seem to make it work.

I have a TADOConnection to the database. I also have a TADODataset which I can access my tables with. But I can only get Name, Precision, Required, Size etc from the FieldDef. I am interested in showing (and altering) the ValidationText. But that property is not there.

I tried:
  myDataSet.FieldDefs[0].Name  (no ValidationText property)

I have done it in VB, where the code is like following:
  Dim tmpTbl As TableDef
  Set tmpTbl = tmpBas.TableDefs!my_table
  tmpTbl.Fields("field1").ValidationText = "My validation text"

What do I do wrong? Is it even possible?

- Mats Magnem
Delphi...yeah! Still learning.

PS : Dere kan godt svare på dansk. Jeg er norsk, men stiller nok spørsmål bedre på engelsk enn på dansk.
Avatar billede stoney Nybegynder
27. august 2004 - 17:29 #1
Congratulation to Norway with the 4 gold medal in Ol Athen

procedure TForm1.Button3Click(Sender: TObject);
begin

// set
adotable1.FieldByName('field1').CustomConstraint := 'My validation text';

//get
showmessage(adotable1.FieldByName('field1').CustomConstraint);



end;

Stoney
Avatar billede thehollow Nybegynder
27. august 2004 - 17:36 #2
Takker! :)

Sorry, men dette er to forskjellige tekster. CustomConstraint returnerer i alle fall ikke det jeg har skrevet i Validation Text i Access. Men det har noe med ADO og DAO å gjøre. Jeg fant løsningen på experts-exchange. Ellers takk.

- Mats
Avatar billede stoney Nybegynder
27. august 2004 - 22:21 #3
Hvad er løsningen så ?

Stoney
Avatar billede thehollow Nybegynder
29. august 2004 - 17:11 #4
Løsningen ble å bruke DAO i stedet for ADO i Delphi. Fordi ValidationText er noe som er spesifikt for Access-databaser. Men det var litt mer tidkrevende enn jeg hadde tid til så jeg lagde denne lille kodesnutten i VB og ble ferdig med det.

Men løsningen jeg fikk fra experts-exchange var dette:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ComObj,ADODB_TLB,ADOX_TLB;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  fADOConnection: _Connection;
  fADOCatalog: _Catalog;
begin

  fADOConnection:=CreateOLEObject('ADODB.Connection') As _Connection;
  fADOCatalog:=CreateOLEObject('ADOX.Catalog') As _Catalog;

  fADOConnection.Open('Data Source = ''test.mdb''; Provider=Microsoft.Jet.OLEDB.4.0;','','',0);
  fADOCatalog._Set_ActiveConnection(fADOConnection);
  Label1.Caption:=fADOCatalog.Tables.Item['Test'].Columns.Item['Test'].Properties.Item['Jet OLEDB:Column Validation Text'].Value;
end;

end.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester