В догонку ...
И, вероятно, данные добавлять лучше с использованием TQuery, а не TTable.
Что-то вроде :
Код:
function Insert_Record_in_Table(an,tn : string; ListData : TStrings; YesParamCheck : boolean = false) : boolean;
//Вставить строку в таблицу Б.Д. (без MEMO-полей)
//an - Alias BDE-5
//tn - Имя таблицы базы данных
//ListData - значения полей в формате: ИмяПоля=ЗначениеПоля
// (если тип поля - строка или дата, то значения должны быть окаймлены одинарными или двойными кавычками)
//YesParamCheck - значение соотв. свойства ParamCheck компонента TQuery
//Возвращаемое значение - true, если успешно
Var
Yes : byte;
i : integer;
Sx,sFN,sVal : string;
Q : TQuery;
begin
Result:=FALSE;
an:=trim(an);
tn:=trim(tn);
if ListData<>NIL then begin
if ListData.Count>0 then begin
if (length(tn)>0) then begin
sFN:='';
sVal:='';
for i:=0 to (ListData.Count-1) do
begin
Sx:=trim(ListData.NAMES[i]);
if length(Sx)>0 then begin
sFN:=sFN+Sx;
Sx:=trim(ListData.VALUES[Sx]);
sVal:=sVal+Sx;
if i<(ListData.Count-1) then begin
sFN := sFN+',';
sVal := sVal+',';
end;
end;
end;
Yes := 0;
Q:=TQuery.Create(NIL);
TRY
Q.DatabaseName:=an;
Q.ParamCheck:=YesParamCheck; //!!!
Q.SQL.ADD('INSERT INTO '+tn);
Q.SQL.Add('(');
Q.SQL.Add(sFN);
Q.SQL.Add(')');
Q.SQL.Add('VALUES');
Q.SQL.Add('(');
Q.SQL.Add(sVal);
Q.SQL.Add(')');
Q.ExecSQL;
Yes := 1;
Result:=TRUE;
FINALLY
if Q<>NIL then begin
if Yes<=0 then begin
ShowMessage('Error! '+#10+Q.SQL.TEXT);
end;
Query_Clear(Q);
end;
END;
end;
end;
end;
end;