Поиск:

Ответ в темуСоздание новой темы Создание опроса
> немогу внести дату в mysql 
:(
    Опции темы
rnycop
Дата 4.9.2008, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



перенашу информацию из access в mysql путем вставки инфы из access'a в edit's, а из edit's в mysql...

есть два поля с датами (дата1, дата2)

дата1-------|----дата2----

26.06.2007 |----24.04.2005
14.07.2006 |----14.03.2006
06.03.2004 |----[тут пусто]
...

все вроде и работает, но если ввести пустую дату в mysql - delphi ругается
Код

''' is not valid date'


вот код добавления в mysql

Код

ZQuery1.Close;
ZQuery1.SQL.Text:='INSERT INTO book (data1,data2) VALUES (:prm1,:prm2)';
ZQuery1.ParamByName('prm1').value:=FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit1.Text));
ZQuery1.ParamByName('prm2').value:=FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit2.Text));
ZQuery1.ExecSQL;


не знаю как это решить...  smile хоть убейте  smile 
PM MAIL   Вверх
Данкинг
Дата 4.9.2008, 17:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(rnycop @  4.9.2008,  18:28 Найти цитируемый пост)
не знаю как это решить... 

Ну дык, try...except поставь.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
pseud
Дата 4.9.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Код

uses
  Variants;
var
  v: Variant;
begin
  ...
  ZQuery1.Close;
  ZQuery1.SQL.Text:='INSERT INTO book (data1,data2) VALUES (:prm1,:prm2)';

  if Edit1.Text = '' then
    v := NULL
  else
    v := FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit1.Text));
  ZQuery1.ParamByName('prm1').value:= v;

  if Edit2.Text = '' then
    v := NULL
  else
    v := FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit2.Text));
  ZQuery1.ParamByName('prm2').value:= v;

  ZQuery1.ExecSQL;
  ...
end;



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
rnycop
Дата 4.9.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 15.2.2006

Репутация: нет
Всего: нет



Цитата(Данкинг @ 4.9.2008,  17:37)
Ну дык, try...except поставь.

можно по-подробнее)


pseud

Я пробывал делать так же только без переменой v результат такой же. Вроде как бы работает, но данные не вводятся в базу.



...мдя мой касяк!! просматривал данные через муадмин, там 30 строк, я жму добавить, там 30 строк, а оказывается там их уже херова туча.. 30 из 204


сорри...

и спасибо за внимание!!

Это сообщение отредактировал(а) rnycop - 4.9.2008, 19:10
PM MAIL   Вверх
Данкинг
Дата 4.9.2008, 19:03 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(rnycop @  4.9.2008,  19:32 Найти цитируемый пост)
можно по-подробнее)

Код

try
ZQuery1.Close;
ZQuery1.SQL.Text:='INSERT INTO book (data1,data2) VALUES (:prm1,:prm2)';
ZQuery1.ParamByName('prm1').value:=FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit1.Text));
ZQuery1.ParamByName('prm2').value:=FormatDateTime('yyyy,"-",mm,"-",dd',StrToDate(Edit2.Text));
ZQuery1.ExecSQL;
except
end;

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


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
pseud
Дата 5.9.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Данкинг @  4.9.2008,  19:03 Найти цитируемый пост)
Соответственно, если одна из дат кривая, то вводиться ничего не будет, но и ошибки не вылезет.


дата не кривая, а NULL


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0783 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.