Спасибо. Отправил повторно.
2 2019-02-11 12:52:10
Topic: Импорт CSV в TreeView (3 replies, posted in Russian)
Приветствую Вас.
Прошу помочь с изменением данного скрипта.
Скрипт использовал стандартный для импорта и загрузки через TableGrid.
Загрузка происходит без проблем и в TableGrid появляются добавленные строки.
Также строки высвечиваются и в TreeView все полностью .
Но после перезапуска программы ,база не загружается выдает ошибку.
--------------------------
Application Error
---------------------------
Exception EConvertError in module методы исследований.exe at 00027EB2.
''ParentID'' is not a valid integer value.
---------------------------
ОК
---------------------------
Данных будет очень много порядка 2000 строк .
Прошу помощи
procedure Searh_Button3_OnClick (Sender: TObject; var Cancel: boolean);
var
OpenDialog: TOpenDialog;
sl: TStringList;
arrStr: array of string;
i,c: integer;
sval: string;
Start: double;
begin
start := GetTickCount;
begin
OpenDialog := TOpenDialog.Create(Form1);
OpenDialog.InitialDir := 'C:\';
if OpenDialog.Execute then
begin
sl := TStringList.Create;
sl.LoadFromFile (OpenDialog.FileName);
c := sl.Count - 1;
for i := 0 to c do
begin
arrStr := SplitString(sl[i], ';');
// A-0
if arrStr[0] <> '' then arrStr[0] := ''''+ ReplaceStr(arrStr[0], '''', '''''') + ''''
else arrStr[0] := 'NULL';
//B-1
if arrStr[1] <> '' then arrStr[1] := ''''+ ReplaceStr(arrStr[1], '''', '''''') + ''''
else arrStr[1] := 'NULL';
// C-2
if arrStr[2] <> '' then arrStr[2] := ''''+ ReplaceStr(arrStr[2], '''', '''''') + ''''
else arrStr[2] := 'NULL';
//D-3
if arrStr[3] <> '' then arrStr[3] := ''''+ ReplaceStr(arrStr[3], '''', '''''') + ''''
else arrStr[3] := 'NULL';
//E-4
if arrStr[4] <> '' then arrStr[4] := ''''+ ReplaceStr(arrStr[4], '''', '''''') + ''''
else arrStr[4] := 'NULL';
//F-5
if arrStr[5] <> '' then arrStr[5] := ''''+ ReplaceStr(arrStr[5], '''', '''''') + ''''
else arrStr[5] := 'NULL';
//G-6
if arrStr[6] <> '' then arrStr[6] := ''''+ ReplaceStr(arrStr[6], '''', '''''') + ''''
else arrStr[6] := 'NULL';
//H-7
if arrStr[7] <> '' then arrStr[7] := ''''+ ReplaceStr(arrStr[7], '''', '''''') + ''''
else arrStr[7] := 'NULL';
//I-8
if arrStr[8] <> '' then arrStr[8] := ''''+ ReplaceStr(arrStr[8], '''', '''''') + ''''
else arrStr[8] := 'NULL';
//J-9
if arrStr[9] <> '' then arrStr[9] := ''''+ ReplaceStr(arrStr[9], '''', '''''') + ''''
else arrStr[9] := 'NULL';
//K-10
if arrStr[10] <> '' then arrStr[10] := ''''+ ReplaceStr(arrStr[10], '''', '''''') + ''''
else arrStr[10] := 'NULL';
//L-11
if arrStr[11] <> '' then arrStr[11] := ''''+ ReplaceStr(arrStr[11], '''', '''''') + ''''
else arrStr[11] := 'NULL';
// check for dublicate «A», «B», «C», «D», «E», «F», «G», «H», «I», «J», «K», «L», «M»,
sval := SQLExecute('SELECT ParentID FROM OrgStructure WHERE (Name = ' + arrStr[0] +') AND (ParentID = ' + arrStr[1] +') AND (Name1 = ' + arrStr[2]+ ')AND (Date = ' + arrStr[3]+ ')AND (pos = ' + arrStr[4]+ ') AND (Heracteristica = ' + arrStr[5]+ ')AND (Diapazon = ' + arrStr[6]+ ')AND (OborudGost = ' + arrStr[7]+ ')AND (OborudLab = ' + arrStr[8]+ ')AND (Metod = ' + arrStr[9]+ ')AND (GostGost = ' + arrStr[10]+ ')AND (GostLab = ' + arrStr[11]+ ');');
if sval = '' then SQLExecute ('INSERT INTO OrgStructure (Name, ParentID, Name1, Date, pos, Heracteristica, Diapazon, OborudGost, OborudLab, Metod, GostGost, GostLab) VALUES (' + arrStr[0] +','+ arrStr[1] +','+arrStr[2]+','+arrStr[3]+','+arrStr[4]+','+arrStr[5]+','+ arrStr[6]+','+ arrStr[7]+','+ arrStr[8]+','+ arrStr[9]+','+ arrStr[10]+','+ arrStr[11]+');');
Searh.Label1.Caption := 'загружено: '+ IntToStr(i+1)+' всего: '+ IntToStr(c+1);
Application.ProcessMessages;
Searh.Label2.Caption:= FormatDateTime('hh:mm:ss', ((GetTickCount-start) div 1000) / 86400 );
end;
sl.Free;
Searh.TableGrid1.dbUpdate;
Form1.TreeView1.dbUpdate; // Update TableGrid
Form1.TreeView1.dbItemID := last_insert_id; // select new record in TableGrid
ShowMessage(' Всего загружено: '+ IntToStr (c+1) + ' и сохранено.');
end;
OpenDialog.Free;.
3 2016-10-25 17:02:48
Re: Подскажите со скриптом... (66 replies, posted in Russian)
Огромное спасибо !!!!!
4 2016-10-21 18:32:28
Re: Подскажите со скриптом... (66 replies, posted in Russian)
Приветствую ВАс прошу помочь с примером, форум весь просмотрел так и не нашол ответ на свой вопрос - как скопировать выделенную строку из 4 столбцов а затем вставить обратно (одним словом продублировать выделенную строку) Заранее благодарен Владимир.
5 2016-09-06 17:32:09
Re: [Скрипт] Импорт CSV файла в базу (33 replies, posted in FAQ)
Огромное Спасибо
будем разбираться.
6 2016-09-05 14:37:57
Re: [Скрипт] Импорт CSV файла в базу (33 replies, posted in FAQ)
Приветствую Вас .
Подскажи пожалуйста Дмитрий а как реализовать Импорт из CSV файла в таблицу без ( дубликатов строк ) по вашему примеру
Import CSV simple.zip
пересмотрел весь сайт так и не нашёл ответа на свой вопрос .
Заранее благодарен Владимир
если импортирую тот же CSV файл в таблицу ,что бы небыло дубликатов а добавилась только новая строка если она такая появилась .
Еще раз благодарен .