Добрый день. Бьюсь, но ничего не выходит. Посоветуйте что делаю неправильно. Фильтр в Grid по вхождению даты в выбранный месяц.

var
   mD, yD: integer;
   p1, p2: string;
begin
     // Выбранный период
     FormFinans.Button4.Enabled := True; // Активирем копку закрытия периода
     // Фильтр таблиц по выбранному периоду

     mD := SQLExecute('SELECT pManthInt FROM Period WHERE (id = ''' + IntToStr(FormFinans.TableGrid1.dbItemID) + ''');');
     yD := SQLExecute('SELECT pYear FROM Period WHERE (id = ''' + IntToStr(FormFinans.TableGrid1.dbItemID) + ''');');
     if mD<10 then p1:= '01.0'+IntToStr(mD)+'.'+IntToStr(yD) else p1:= '01.'+IntToStr(mD)+'.'+IntToStr(yD);

     if mD=12 then begin mD:=1; yD:=yD+1;  end else mD:=mD+1;
     if mD<10 then p2:= '01.0'+IntToStr(mD)+'.'+IntToStr(yD) else p2:= '01.'+IntToStr(mD)+'.'+IntToStr(yD);

     periodFiltr:= '(oSchetData>'''+p1+''') AND (oSchetData<'''+p2+''')';
     ShowMessage (periodFiltr);

     FormFinans.TableGrid2.dbFilter:=periodFiltr;
     FormFinans.TableGrid3.dbFilter:=periodFiltr;

     FormFinans.TableGrid2.dbUpdate;
     FormFinans.TableGrid3.dbUpdate;

Спасибо за ответ, но я немного по другому реализовал. Готов выслушать конструктивную критику.

buttonSelected := MessageDlg ('Регион ' + arrStr[2] + ' отсутствует в базе. Добавить ?', mtWarning, mbYes + mbNo, 0);
                                               if  buttonSelected = 6 then  begin
                                               // Вносим изменения
                                               SQLExecute ('INSERT INTO zakazRegion (region) VALUES ("'+ arrStr[2] +'");');
                                               rID := SQLExecute ('SELECT id FROM zakazRegion WHERE region LIKE "' + arrStr[2] +'"');
                                               SQLExecute ('UPDATE zakaz SET id_zakazRegion = "' + rID + '" WHERE id = ' + s)
                                                                            end;

103

(6 replies, posted in Russian)

Здравствуйте, У меня программа не пиратская) Но вопрос схожен. Я добавляю запись в БД по полям формы используя кнопку с ф-ями СОХРАНИТЬ. Как мне до сохранения проверить, что запись с таким номером аукциона уже есть и ее не надо записывать. Спасибо.

Вопрос. А если в файле появляется новая валюта, кода которой еще не было в базе. Как тогда добавить эту строку со связными полями ?

спасибо за ответ, обязательно посмотрю.

Здравствуйте! Работаю в SQLite. Не подскажите, как заблокировать запись при редактировании одного пользователя от другого, и как после редактирования автоматом обновить данные (GRID) у всех активных пользователей?

Большое спасибо за помощь и оперативность! Не зря купил эту программу.

Здравствуйте, веду лог работы с базой.

    sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn:ss.000', now) + '"';
   
    SQLExecute ('INSERT INTO log_in_out (data, operation, fio)' +'VALUES ('+sCurrentDate+',"ВЫХОД","'+ fioUser +'")');

Структура ЛОГА: data - дата/тайм, и два текстовых поля.

по дате из DateTimePicker1 хочу удалить всче содержимое до указанной даты.

Следующее условие почему-то не работает.

SQLExecute ('DELETE FROM log_in_out WHERE (data < ''' + DateToStr(editAdmin.DateTimePicker1.DateTime) + ''')');

Подскажите в чем причина. Спасибо.

Создал проект, локально работает хорошо. Скопировал файл базы данных в другую папку. При первом запуске в настройках указал путь к этой папке, предварительно сделав ее общей с полными правами. При запуске приложения доступно только окно Авторизации (оно же главная форма), дальше по кнопке Ок ничего не происходит. В чем может быть дело?

Спасибо, разобрался. Вычисляемые поля нельзя использовать в других вычисляемых полях!!! Нужно копировать туда всю формулу целиком.

Здравствуйте, проект отправил в ответ на пришедшее письмо.

Добрый день! Grid не хочет выводить вычисляемое поле, без вывода полей, входящих в вычисление этого поля.