какой именно скрипт? Дайте пожалуйста ссылку, также опишите, что именно не работает.
за основу взят этот скрипт но доработан, добавляет в две связанные таблицы и в одной из них проверяет на наличие уже имеющихся записей и если аналогичная запись есть, то связывает с ней
мой код:
procedure frmSklad_Button7_OnClick (Sender: string; var Cancel: boolean);
var
OpenDialog: TOpenDialog;
sl: TStringList;
arrStr: array of string;
x, m, z, z0, skA, z1: string;
i,c: integer;
iOb,cOb: integer;
ValuteID: string;
begin
OpenDialog := TOpenDialog.Create(frmSklad);
OpenDialog.InitialDir := ExtractFileDir(Application.Exename);
if OpenDialog.Execute then
begin
sl := TStringList.Create;
sl.LoadFromFile (OpenDialog.FileName);
cOb := sl.Count - 1;
for iOb := 0 to cOb do
begin
arrStr := SplitString(sl[iOb], ';');
// artikul
if arrStr[0] = '' then
begin
z0 := '';
m := 'SK-';
z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);
z := FloatToStr( StrToFloat(z1) + 1);
c := Length(z);
c := 6-c; // 6 - qty of zero
for i := 1 to c do z0 := z0 + '0';
skA := m+z0+z;
end else
begin
skA := ReplaceStr(arrStr[0], '''', '''''');
z1 := VarToStr( SQLExecute('SELECT record_count FROM sklad WHERE id = (SELECT MAX(id) FROM sklad)') );
if z1='' then z := '0' else z := FloatToStr( StrToFloat(z1) + 1);
end;
// skname
if arrStr[1] <> '' then arrStr[1] := ''''+ ReplaceStr(arrStr[1], '''', '''''') + ''''
else arrStr[1] := 'NULL';
// skizm
if arrStr[2] <> '' then arrStr[2] := ''''+ ReplaceStr(arrStr[2], '''', '''''') + ''''
else arrStr[2] := 'NULL';
// skkol
arrStr[3] := ReplaceStr(arrStr[3], ',', '.');
if arrStr[3] = '' then arrStr[3] := 'NULL';
// skcena
arrStr[4] := ReplaceStr(arrStr[4], ',', '.');
if arrStr[4] = '' then arrStr[4] := 'NULL';
//2 id_sktype
if arrStr[5] <> '' then
begin
ValuteID := SQLExecute ('SELECT id FROM sktype WHERE stname LIKE "' + arrStr[5] +'"');
if ValuteID = '' then
begin
SQLExecute ('INSERT INTO sktype (stname) VALUES ("'+ arrStr[5] +'");');
ValuteID := IntToStr(Last_Insert_id);
if ValuteID = '-1' then ValuteID := 'NULL';
end;
end else ValuteID := 'NULL';
// skmin
arrStr[6] := ReplaceStr(arrStr[6], ',', '.');
if arrStr[6] = '' then arrStr[6] := 'NULL';
// skzak
arrStr[7] := ReplaceStr(arrStr[7], ',', '.');
if arrStr[7] = '' then arrStr[7] := 'NULL';
SQLExecute ('INSERT INTO sklad (artikul, record_count, skname, skizm, skkol, skcena, id_sktype, skmin, skzak) VALUES ("'+ skA +'",'+ z +','+ arrStr[1] +','+ arrStr[2]+','+ arrStr[3]+','+ arrStr[4]+','+ ValuteID +','+ arrStr[6]+','+ arrStr[7]+');');
frmSklad.Label1.Caption := IntToStr(iOb+1) + ' из ' + IntToStr(cOb+1);
Application.ProcessMessages;
end;
sl.Free;
UpdateDatabase('sktype');
frmSklad.TableGrid1.dbUpdate;
frmSklad.TableGrid2.dbUpdate;
frmSklad.ComboBox1.DoOnChange;
end;
OpenDialog.Free;
end;
после выбора файла ничего не происходит...