Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 644

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Пытаюсь записать в таблицу access значение даты из MaskEdit с помощью sql запроса. Не получается! Помогите плиз!!!

Приложение:
  1. Form8.ADOQuery1.SQL.Add('INSERT INTO g_prin (reg_N, date) VALUES ('''+Edit1.Text+''', '''+MaskEdit1.Text+''')');
  2. Form8.ADOQuery1.ExecSQL;
  3. Form8.ADOQuery1.Active:=False;
  4. Form8.ADOQuery1.SQL.Clear;
  5. Form8.ADOQuery1.SQL.Add('SELECT *');
  6. Form8.ADOQuery1.SQL.Add('FROM g_prin');
  7. Form8.ADOQuery1.SQL.Add('ORDER BY reg_N');
  8. Form8.ADOQuery1.Active:=true;


Александр-вц Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Александр-вц (статус: Посетитель)
Вопрос отправлен: 10 октября 2010, 10:01
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 12 октября 2010, 00:50; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 10 октября 2010, 10:12 [#1]:

Вынеси строку запроса в отдельную переменную и посмотри, правильно ли она формируется.
var
  QueryStr: string;
begin
  QueryStr:= 'INSERT INTO g_prin...'; // и т.д.
  ShowMessage(QueryStr);
  Form8.ADOQuery1.SQL.Add(QueryStr);
  //............
end;
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Александр-вц

Александр-вц (статус: Посетитель), 10 октября 2010, 10:24 [#2]:

Спасибо за оперативный ответ!
Убираю дату и соответственно MaskEdit, и всё получается! :(((
Александр-вц

Александр-вц (статус: Посетитель), 10 октября 2010, 10:33 [#3]:

Думаю дело в несоответствии формата даты, передаваемой из MaskEdit и формата даты в самом Access. А как сделать не знаю.
Александр-вц

Александр-вц (статус: Посетитель), 10 октября 2010, 10:35 [#4]:

Интересно, а если региональные настройки даты на другом ПК будут другие, то запрос все равно не будет выполнен? :( Как же быть?
min@y™

min@y™ (статус: Доктор наук), 10 октября 2010, 10:40 [#5]:

Жди ответов от людей, которые занимаются базами данных. К сожалению, у меня другая специализация.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 10 октября 2010, 11:33 [#6]:

Цитата (Александр-вц):

Как же быть?

Формировать дату вручную соответствующими функциями из модуля DateUtils.
min@y™

min@y™ (статус: Доктор наук), 10 октября 2010, 12:48 [#7]:

Цитата (Ерёмин А.А.):

Формировать дату вручную соответствующими функциями из модуля DateUtils.

Я тоже так подумал, но не сказал, т.к. с SQL-запросами знаком очень поверхностно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Александр-вц

Александр-вц (статус: Посетитель), 10 октября 2010, 21:47 [#8]:

Так все таки как написать запрос?
Александр-вц

Александр-вц (статус: Посетитель), 12 октября 2010, 00:50 [#9]:

Ну ладно. У меня вроди бы получилось. Может пригодится кому...

dat:= StringReplace(DateToStr(DateTimePicker1.Date), '.', '.', [rfReplaceAll]);
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('INSERT INTO table1 (reg_n, data) VALUES (:Prm1, :Prm2)');
Form1.ADOQuery1.Parameters.ParamByName('Prm1').Value:= Edit1.Text;
Form1.ADOQuery1.Parameters.ParamByName('Prm2').Value:= dat;
Form1.ADOQuery1.ExecSQL;

Уважаемые эксперты, поправьте если что-то не так.
С уважением, Александр.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.02 сек.