Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-90443
Blunder
2002-01-31 22:50
2002.02.28
Как получить имена всех индексов в IB 5.x ?


3-90483
Леша
2002-02-04 05:26
2002.02.28
Подскажите как определить время запроса в MSSQL с точность до миллисекунды


1-90605
Roman_Tutov
2002-02-12 18:23
2002.02.28
компонент DBGrid


4-90698
vector
2001-12-29 12:12
2002.02.28
Посоветуйте, кому не лень


3-90497
HiFiBear
2002-02-01 10:28
2002.02.28
Проьлема с библиотеками ado





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский