Новичок
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 15.5.2006
Репутация: нет Всего: нет
|
спасибо всем за ответы с этой задачей я справился по другому: | Код | if (isEmptyValue(TbPDX.FieldValues['date']))then table_date := FormatDateTime('yyyy_mm',VarToDateTime(TbPDX.FieldValues['date'])) else table_date := FormatDateTime('yyyy_mm',VarToDateTime(TbPDX.FieldValues['date'])-1);
if (CompareText(date,table_date)<>0) then table_name := 'request_' + table_date else table_name := 'request_main';
Close; SQL.Clear; SQL_part := 'insert into %s'; SQL.Add(Format(SQL_part,[table_name])); SQL.Add('(id,company_code,code,date_ins,date_up,countries,comments,zirka,date_from,date_to,truck,weight,cube,'); SQL.Add('repeat_cnt,deleted,order_type,date_activate,time_activate,cargo,marshrutte,distincts,operator_id)'); SQL.Add('values (:id,:company_code,:code,:date_ins,:date_up,:countries,:comments,:zirka,:date_from,:date_to,:truck,:weight,:cube,'); SQL.Add(':repeat_cnt,:deleted,:order_type,:date_activate,:time_activate,:cargo,:marshrutte,:distincts,:operator_id)');
try ParamByName('id').Value := SERVER_NAME + FormatDateTime('yyyymmddhhnnsszzz',Now); except on EDatabaseError do with Params.CreateParam(ftString,'id',ptInput) do AsString := SERVER_NAME + FormatDateTime('yyyymmddhhnnsszzz',Now); end;
try ParamByName('company_code').Value := TbPDX.FieldValues['code_company']; except on EDatabaseError do with Params.CreateParam(ftString,'company_code',ptInput) do AsString := TbPDX.FieldValues['code_company']; end; ParamByName('code').Value := TbPDX.FieldValues['code_order'];
if (isEmptyValue(TbPDX.FieldValues['date']))then str_temp1 := FormatDateTime('yyyy-mm-dd',VarToDateTime(TbPDX.FieldValues['date'])) else str_temp1 := '0000-00-00'; ParamByName('date_ins').Value := str_temp1; ParamByName('date_up').Value := str_temp1;
ParamByName('countries').Value := TbPDX.FieldValues['comment1']; if (isEmptyValue(TbPDX.FieldValues['comment2']))then str_temp1 := VarToStr(TbPDX.FieldValues['comment2']) else str_temp1 := ''; if (isEmptyValue(TbPDX.FieldValues['comment3']))then str_temp2 := VarToStr(TbPDX.FieldValues['comment3']) else str_temp2 := ''; ParamByName('comments').Value := str_temp1 + ' ' + str_temp2;
if (isEmptyValue(TbPDX.FieldValues['zirka'])) then ParamByName('zirka').Value := '*' else ParamByName('zirka').Value := '';
str_temp1 := VarToStr(ParamByName('comments').Value); if (Length(str_temp1)>0) then begin //-- ðàçáèâàåì ñòðîêó ñ êîìåíòàðèÿìè íÿ ñëîâà --// DateCommentCount := Explode(DateComment,' ',str_temp1); if (CountPos('-',DateComment[0])>0) then begin dateFromToCount := Explode(dateFromTo,'-',DateComment[0]); try tempDateTime := StrToDateTime(dateFromTo[0]); str_temp2 := FormatDateTime('yyyy-mm-dd',tempDateTime); except str_temp2 := '0000-00-00' end; ParamByName('date_from').Value := str_temp2; try tempDateTime := StrToDateTime(dateFromTo[1]); str_temp2 := FormatDateTime('yyyy-mm-dd',tempDateTime); except str_temp2 := '0000-00-00' end; ParamByName('date_to').Value := str_temp2; end else begin ParamByName('date_from').Value := '0000-00-00'; ParamByName('date_to').Value := '0000-00-00'; end; if (isEmptyValue(DateComment[1])) then ParamByName('truck').Value := DateComment[1] else ParamByName('truck').Value := varNull; k:=2; for j:= k to DateCommentCount-1 do begin if (CountPos('òí.',DateComment[j])>0) then begin WeightStrCount:=Explode(WeightStr,'òí.',DateComment[j]); ParamByName('weight').Value := WeightStr[0]; k:=j+1; end else ParamByName('weight').Value := varNull; if (CountPos('êóá.',DateComment[j])>0) then begin CubeStrCount := Explode(CubeStr,'êóá.',DateComment[j]); ParamByName('cube').Value := CubeStr[0]; k:=j+1; end else ParamByName('cube').Value := varNull; end; end else begin ParamByName('date_from').Value := varNull; ParamByName('date_to').Value := varNull; ParamByName('truck').Value := varNull; ParamByName('weight').Value := varNull; ParamByName('cube').Value := varNull; end;
if isEmptyValue(TbPDX.FieldValues['povtor']) then ParamByName('repeat_cnt').Value := TbPDX.FieldValues[''] else ParamByName('repeat_cnt').Value := varNull;
if isEmptyValue(TbPDX.FieldValues['deleted']) then if (TbPDX.FieldValues['deleted']='D') then ParamByName('deleted').Value := 1 else ParamByName('deleted').Value := 0 else ParamByName('deleted').Value := 0;
if isEmptyValue(TbPDX.FieldValues['order_type']) then ParamByName('order_type').Value := TbPDX.FieldValues[''] else ParamByName('order_type').Value := varNull;
if isEmptyValue(TbPDX.FieldValues['order_activate_date']) then begin try tempDateTime := VarToDateTime(TbPDX.FieldValues['order_activate_date']); ParamByName('date_activate').Value := FormatDateTime('yyyy-mm-dd',tempDateTime); except ParamByName('date_activate').Value := '0000-00-00'; end; end else ParamByName('date_activate').Value := '0000-00-00';
if isEmptyValue(TbPDX.FieldValues['order_activate_time']) then begin try tempDateTime := VarToDateTime(TbPDX.FieldValues['order_activate_time']); ParamByName('time_activate').Value := FormatDateTime('hh-nn-ss',tempDateTime); except ParamByName('time_activate').Value := '00:00:00'; end; end else ParamByName('time_activate').Value := '00:00:00';
if isEmptyValue(TbPDX.FieldValues['order_cargo']) then ParamByName('cargo').Value := TbPDX.FieldValues['order_cargo'] else ParamByName('cargo').Value := varNull;
if isEmptyValue(TbPDX.FieldValues['order_cities']) then ParamByName('marshrutte').Value := TbPDX.FieldValues['order_cities'] else ParamByName('marshrutte').Value := varNull;
if isEmptyValue(TbPDX.FieldValues['distincts']) then ParamByName('distincts').Value := TbPDX.FieldValues['distincts'] else ParamByName('distincts').Value := varNull; str_temp1 := IntToStr(findOperatorID(A[AnzTokens-1])); ParamByName('operator_id').Value := str_temp1; ExecSQL;
|
теперь EDBEngineError выдате такой баг : Could not find Object. Если же закометировать строки где добавляетс SQL то все нормально работает и все данные добавляются. Стоит такая задача: анализируя данные поля date распихать данные в ту или иную таблицу.
|