Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 22:34   #1
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию Delphi MySQL - криво вводится дата в таблицу.

Доброго времени.
Подскажите по SQL.

из формы с помощью DateTimePicker вношу дату в таблицу с типом поля date, а получаю перевернутую дату... пример:
DateTimePicker1.Date := 31.05.2012
А в DBGrid1 получается 20.05.2031

В чем подвох???

Пробую вот такой вариант
Код:
  with ADOQuery1.Parameters.AddParameter do
begin
  Name := 'param1';
  Value := FormatDateTime('ddmmyyyy', DateTimePicker1.Date);
end;
Вставляет пустое значение, то есть в поле вааще пусто!!!

Последний раз редактировалось iskurt; 08.06.2012 в 23:35. Причина: Об стенку головой
iskurt вне форума Ответить с цитированием
Старый 09.06.2012, 07:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А запрос сам где?
FormatDateTime тут не нужен.
Value :=DateTimePicker1.Date будет достаточно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 19:51   #3
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А запрос сам где?
FormatDateTime тут не нужен.
Value :=DateTimePicker1.Date будет достаточно.
Код:
ADOQuery1.SQL.Text := 'INSERT INTO jurnal VALUES (NULL, "'
    +DateToStr(DateTimePicker1.Date)
    +'","'+DBLookupComboBox1.Text
    +'","'+DBLookupComboBox2.Text
    +'",' +IntToStr(SpinEdit1.Value)
    +', "'+p+'")';
  ADOQuery1.ExecSQL;
Все замечательно, кроме даты...

SOS!!!
iskurt вне форума Ответить с цитированием
Старый 10.06.2012, 20:55   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
with ADOQuery1 do begin
 SQL.Text := 'INSERT INTO jurnal VALUES (NULL, :d,:lcb1,lcb2,:ce,:p)';
 ParamByName('d').AsDateTime:=DateTimePicker1.Date;
 ParamByName('lcb1').value:=DBLookupComboBox1.Text;
 ParamByName('lcb2').value:=DBLookupComboBox2.Text;
 ParamByName('ce').value:=SpinEdit1.Value;
 ParamByName('p').value:=p;
 if ExecSQL=0 then ShowMessage('Ничего не вставилось');
end;
Подойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 20:57   #5
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Странно, но ругается на
Код:
[DCC Error] Unit1.pas(98): E2003 Undeclared identifier: 'ParamByName'
Его нужно объявлять? КАК?

Может просто NAME ?
Чего это он не понимает его?
iskurt вне форума Ответить с цитированием
Старый 10.06.2012, 21:02   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А какого типа у тебя ADOQuery1 ?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 21:03   #7
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А какого типа у тебя ADOQuery1 ?
Уточните вопрос?
работаю с MySQL через драйвер ODBC
Может это поможет мне ответить,
Код:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, StdCtrls,
  Spin, Buttons, Menus;
type
   ADOQuery1: TADOQuery;

Последний раз редактировалось iskurt; 10.06.2012 в 21:11.
iskurt вне форума Ответить с цитированием
Старый 10.06.2012, 21:18   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Затупил:
Код:
Parameters.ParamByName(...
Ну ладно я не специалист в компудерах
А ты мог бы ради приличия заглянуть в справку и почитать как этот ParamByName описывается
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.06.2012, 21:19   #9
iskurt
Форумчанин
 
Регистрация: 02.06.2009
Сообщений: 228
По умолчанию

ну я направления мыслей то понял.. но вот беда, не могу присвоить тип AsDateTime

Вобще вместо вопросов мне нужно чтото правильное прописать!!!
Код:
Parameters.ParamByName('d').??????:=DateTimePicker1.Date;
VALUE?

И все равно, нужно параметры где то объявлять, ругается, мол не находит их...

Вобщем думаю дело даже и не в этом, а в НЕСОВПАДЕНИИ написании формата даты...
Похоже что в скуле yyyy/mm/dd
а в Делфях dd.mm.yyyy

Вот тут есть таблица с датами

!!!!!SOS!!!!!

Последний раз редактировалось Stilet; 10.06.2012 в 22:12.
iskurt вне форума Ответить с цитированием
Старый 10.06.2012, 22:15   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Похоже что в скуле yyyy/mm/dd
а в Делфях dd.mm.yyyy
Тогда по другому - посмотри административными средствами для Мускула, как дата из проги твоей записывается? Если в БД она как полагается, значит просто тебе нужно для поля в Гриде описать формат вывода.
Или преобразовывать в строку в запросе (если пользуешся запросом) типа
select cast(поледаты as char(10))...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дата в mysql Mortimoro PHP 2 18.04.2012 20:45
Из едита в таблицу MySQL Kristian БД в Delphi 6 08.10.2011 20:00
Как проверить произошла ли запись в таблицу Mysql по средствам Delphi D.O.G БД в Delphi 5 24.08.2010 08:03
Копирование данных типа Дата из Excel в mdb таблицу Dimok82 БД в Delphi 0 14.03.2009 11:34
Арифметика, выражение вводится строкой [Delphi] iFool Помощь студентам 3 21.10.2008 18:51