Bu fonksiyon, adi bilinen bir alanın, tablo içerisindeki sırasını bulur.
Function DBFieldNo(DatabaseName, TableName, FieldName: String): Integer;
Var
Table : TTable;
FieldIndex : Integer;
FieldNumber: Integer;
Begin
Result := -1;
If Not IsTable(DatabaseName, TableName) Then Exit;
If Not IsField(DatabaseName, TableName, FieldName) Then Exit;
Table := TTable.Create(nil);
Try
Try
Table.Active := False;
Table.DatabaseName := DatabaseName;
Table.TableName := TableName;
Table.Active := True;
2 views
Sira numarasi verilen bir tablo alaninin alan adi bu fonksiyonla alinabilir.
Function DBFieldNameByNo(
DatabaseName : String;
TableName : String;
FieldNo : Integer): String;
Var
Table : TTable;
Begin
Result := ”;
If Not IsTable(DatabaseName, TableName) Then Exit;
If FieldNo < 0 Then Exit;
If FieldNo >= DBNFields(DatabaseName, TableName) Then Exit;
Table := TTable.Create(nil);
0 views
erhangi bir veri tabanindan tablo silmek gerektiginde, asagidaki fonksiyon kullanilabilir.
Function DBDropTable(const DatabaseName, TableName : string):Boolean;
var Query : TQuery;
begin
Result := False;
If Not IsTable(DatabaseName, TableName) Then
Begin
Exit;
End;
Query := TQuery.Create(nil);
try
2 views
dBase tablolarindaki silinmis kayitlarin görünür hale getirilmesi icin DbiSetProp fonksiyonu kullanilir.
procedure SetDelete(oTable:TTable; Value: Boolean);
var
rslt: DBIResult;
szErrMsg: DBIMSG;
begin
try
oTable.DisableControls;
try
rslt := DbiSetProp(hDBIObj(oTable.Handle), curSOFTDELETEON,
LongInt(Value));
if rslt <> DBIERR_NONE then
begin
10 views
Bu islem icin DbiPackTable. Isimli BDE fonksiyonu kullanilir.
Örnek kod su sekildedir.
uses
DbiProcs, DbiTypes, DBConsts;
procedure TForm1.Button1Click(Sender: TObject);
var
Error: DbiResult;
ErrorMsg: String;
Special: DBIMSG;
begin
table1.Active := False;
try
Table1.Exclusive := True;
Table1.Active := True;
Error := DbiPackTable(Table1.DBHandle, Table1.Handle, nil, szdBASE, True);
Table1.Active := False;
1 views
Tablo iceriginin TstrinGrid bilesenine doldurulmasi su sekilde olur.
table.first;
row := 0;
grid.rowcount := table.recordCount;
while not table.eof do begin
for i := 0 to table.fieldCount-1 do
grid.cells[i,row] := table.fields[i].asString;
inc (row);
table.next;
end;
5 views
Master-Detay iliski icerisindeki tablolarda, detayi olan bir ana kayit silindiginde, detaylar ortada kalir. Ana kayit olmadigina göre detaylara da ihtiyac yoktur. Bu nedenle ana kayit silinmeden önce detaylari silmek gerekir. Table1 ana tabloya, Table2 de Detay tabloya bagli kabul edilirse, Table1′ den bir kayit silinmek istendiginde önce Table2′ deki detaylar temizlenecektir asagidaki örnek bunu göstermektedir.
procedure TForm1.Table1BeforeDelete(DataSet: TDataset)
begin
with Table2 do begin
DisableControls;
First;
While not EOF do
Delete;
EnableControls;
end;
end;
6 views
Bir tablodaki alanlarin “Visible” özelligine “False” degeri verilerek, istenmeyen alanlarin görüntülenmesi engellenir.
Table1.FieldByName(
veya
Table1.Field[
2 views
procedure TForm1.FindDialog1Find(Sender: TObject);
var Buff, P, FT : PChar;
BuffLen : Word;
begin
With Sender as TFindDialog do
begin
GetMem(FT, Length(FindText) + 1);
StrPCopy(FT, FindText);
BuffLen:= DBMemo1.GetTextLen + 1;
GetMem(Buff,BuffLen);
0 views
unit AsterixUnt;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Buttons;
var
HSonrakiWinMsg : HWND;
type
TAsterix = class(TForm)
OrnekEdit: TEdit;
Zamanlayici: TTimer;
ShowPanel: TPanel;
Ornek: TLabel;
BitBtn1: TBitBtn;
Bilgi: TLabel;
BilgiLabel: TLabel;
4 views