エリアクリア

for i:=1 to ComponentCount-1 do begin
if Components[i] is TEdit then TEdit(Components[i]).Text :=”;
if Components[i] is TSsEdit then TSsEdit(Components[i]).Text :=”;
if Components[i] is TMemo then TMemo(Components[i]).Text :=”;
if Components[i] is TplDateEdit then TplDateEdit(Components[i]).SetEditEmpty;
end;

レコード型変数

■レコード型とは
任意の形式の型を自分で定義する手段である。構造体のようなもの。
例)
TRecSample = record
EMP_NO: string;
NAME: string;
BU_CD: string;
end;

SrcData: TRecSample;
■例
例)レコード型配列の最小要素から最大要素まで順番にループする
type
//レコード型宣言部
TEmp = Record
EMP_NO :String;
ENAME :String;
end;

public
//レコード型を元に、配列宣言
arrEmp : Array[1..1000] of TEmp;
end;
//従業員レコードを格納する配列の初期化
for i := Low(arrEmp) to High(arrEmp) do
begin
arrEmp[i].EMP_NO := ”;
arrEmp[i].ENAME := ”;
end;

グリット更新カーソル移動

type
TDummyDBGrid = class(TCustomDBGrid);
——————————————–>>>

procedure TForm1.Button1Click(Sender: TObject);
var
w_print,w_no : Integer;
w_sql : String;
RowCount, RN: Integer;
TopRowRecNo, CurrentRowNo: Integer;
begin

dm.sql_list.DisableControls;
CurrentRowNo := TDummyDBGrid(db_list).Row – 1;
TopRowRecNo := dm.sql_list.RecNo – CurrentRowNo;

if db_list.Fields[11].AsInteger = 0 then w_print := 1
else w_print := 0;

w_no := db_list.Fields[0].AsInteger;

w_sql := ‘UPDATE w_hurikomi_m SET w_hurikomi_m.print_flg = ‘ + IntToStr(w_print);
w_sql := w_sql + ‘ WHERE w_hurikomi_m.sql_no = ‘ + IntToStr(w_no);

with dm.ado_sql do begin
SQL.Clear;
SQL.Add(w_sql);
ExecSQL;
end;

dm.sql_list.Close;
dm.sql_list.Open;

// 指定レコードをTopRowに移動させる処理
RowCount := TDummyDBGrid(db_list).VisibleRowCount;
dm.sql_list.RecNo := TopRowRecNo;
dm.sql_list.MoveBy(RowCount);

while not dm.sql_list.BOF do
begin
RN := dm.sql_list.RecNo;
if RN = TopRowRecNo then
Break
else
dm.sql_list.Prior;
end;

// カーソルを元のカレントレコードに移動させる処理
dm.sql_list.MoveBy(CurrentRowNo);
dm.sql_list.EnableControls;

Result := True;

end;

文字列 + Null

連結する文字列にNULLが含まれている場合…下記表記参考!
strSQL := strSQL + ‘ ISNULL(a.name,’ + f + f + ‘) ‘ + ‘+’ + ‘ ISNULL(a.name_b,’ + f + f + ‘) as name_x, ‘;