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.
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
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
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.