Форум: "Базы";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
ВнизПодскажите плиз, как мне добавлять записи, в базу проверяя при этом, если она уже или нет? Найти похожие ветки
← →
dimonf (2002-02-04 19:58) [0]У меня задача добавлять из массива MyData.StringList; данные в базу.
Массив типа: 10.10.2001 0909 0234 0565 ….
10.10.2001 0234 6556 3433 ….
10.10.2001 0565 3432 3454 …. и.т.д
Предполагается что каждая следующая запись это следующий час данной даты:
10.10.10 01:00 0909 0234 0565 ….
10.10.10 02:00 0234 6556 3433 ….
10.10.10 03:00 0565 3432 3454 …. и.т.д
Как мне при добавлении записей в базу из массива не повторяться.
Вот что у меня получилось, но как хочется, не работает L
…
var Count : Integer;
ADate: TDate;
ATimes: Integer;
…
ADate:=MyStrToDate(ConvData(MyData[961],1));
For Count:=1 to MyData.Count-3 do
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("Select * From ""+Dir+"\Base\"+NTeplo+"c.db" Where Dates=""+DateToStr(MyStrToDate(ConvData(MyData[962-Count],1)))+"" and Times=""+TimeToStr(StrToTime(IntToStr(ATimes)+":00"))+""");
Query1.Open;
Inc(ProgressCount);
Form4.Gauge1.Progress:=ProgressCount;
IF (Query1.FieldByName("Dates").Value<>MyStrToDate(ConvData(MyData[962-Count],1))) and (Query1.FieldByName("Times").Value<>StrToTime(IntToStr(ATimes)+":00")) then
begin
IF ADate=MyStrToDate(ConvData(MyData[962-Count],1)) then
begin
ATimes:=ATimes+1;
end
else ATimes:=0;
ADate:=MyStrToDate(ConvData(MyData[962-Count],1));
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("Insert Into ""+Dir+"\Base\"+NTeplo+"c.db" Values (""+DateToStr(ADate)+"",""+IntToStr(ATimes)+":00",""+FloatTostr(StrToFloat(ConvData(MyData[962-Count],2))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MyData[962-Count],9))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MyData[962-Count],11))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MyData[962-Count],9))*0.01-StrToFloat(ConvData(MyData[962-Count],11))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MainForm.MyData[962-Count],3))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MainForm.MyData[962-Count],4))*0.01)+"",""+FloatToStr(StrToFloat(ConvData(MainForm.MyData[962-Count],3))*0.01-StrToFloat(ConvData(MainForm.MyData[962-Count],4))*0.01)+"")");
Query1.ExecSQL;
end;
end;
Как быть?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c