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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 15:12   #1
VladikBD
 
Регистрация: 21.03.2013
Сообщений: 4
Восклицание Adocommand, его причуды

Здравствуйте, создаю АИС с помощью делфи, в кач-ве СУБД использую MySQL
При создании таблицы в MySQL в поле "DataRojdenia" выбираю тип данных Date.
Добавление записей в делфи осуществляю с помощью adocommand, так вот, там параметры(parameters) постоянно сбиваюся на полях с временным типом данных (datetime) на (string) и при добавлении постоянно выскакивает ошибка, это происходит переодически , раз в 3-4 часа. (кстати для полей с таким типом данных при добавлении использую datetimepicker)
Приходится залазить в исходник проги и поправлять.
Так вот, вопрос, нельзя ли это исправить как-то?
К примеру в MySQL постоянно использовать строковый тип данных , тогда уж точно не собьётся, но тогда возможно ли будет выполнять сортировку по дате, выбирать промежутки в датах ну и прочие операции?
Очень прошу помочь, боюсь комманд на дипломе подведет.
спасибо
VladikBD вне форума Ответить с цитированием
Старый 21.03.2013, 15:42   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

что-то странное Вы нам сообщаете...

я с такими чудесами не сталкивался, поэтому, возможно, мои советы "пролетят мимо кассы"..

во-первых, попробуйте для добавления записей использовать не ADOCommand, а ADOQuery (текст запроса такой же: INSERT INTO .... VALUES .... )

во-вторых, если Вы свой компонент используете ещё и для других запросов (сортировок, удалений, обновлений), то НЕ ДЕЛАЙТЕ так. Сделайте ОТДЕЛЬНЫЙ компонент для INSERT, отдельный - для UPDATE, отдельный для SELECT и т.д.
возможно, что в разных запросах у Вас разные параметры, что и сбивает тип параметров запроса.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.03.2013, 15:48   #3
VladikBD
 
Регистрация: 21.03.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
что-то странное Вы нам сообщаете...

я с такими чудесами не сталкивался, поэтому, возможно, мои советы "пролетят мимо кассы"..

во-первых, попробуйте для добавления записей использовать не ADOCommand, а ADOQuery (текст запроса такой же: INSERT INTO .... VALUES .... )

во-вторых, если Вы свой компонент используете ещё и для других запросов (сортировок, удалений, обновлений), то НЕ ДЕЛАЙТЕ так. Сделайте ОТДЕЛЬНЫЙ компонент для INSERT, отдельный - для UPDATE, отдельный для SELECT и т.д.
возможно, что в разных запросах у Вас разные параметры, что и сбивает тип параметров запроса.
Спасибо за ответ, попробую adoquery , для всех операций использую разные adocommand.
Сейчас посмотрел свои прошлые АИС с полями временного типа данных , в одной из них был сбит тип данных в параметрах на String,добавление не работало , а в другой АИС в command на добавление стоял тип данных Unknown (стандартный,изначальный) но добавление работало!
Я уже совсем запутался.
VladikBD вне форума Ответить с цитированием
Старый 21.03.2013, 16:34   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

каким образом ошибка времени исполнения
Код:
так вот, там параметры(parameters) постоянно сбиваюся на полях с временным типом данных (datetime) на (string) и при добавлении постоянно выскакивает ошибка, это происходит переодически , раз в 3-4 часа.
может влиять на исходники
Цитата:
Приходится залазить в исходник проги и поправлять.
Или же это надо понимать так
при активной отладке (работе с исходниками) периодически сбиваются настройки параметров, при очередном запуске идут ошибки и приходится их(настройки параметров) править.


Цитата:
При создании таблицы в MySQL в поле "DataRojdenia" выбираю тип данных Date.
Вы каждый раз создаете новую таблицу?

возможно проблема на стыке
"генерация таблицы" + "запись в новую таблицу"
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 21.03.2013, 16:39   #5
VladikBD
 
Регистрация: 21.03.2013
Сообщений: 4
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Или же это надо понимать так
при активной отладке (работе с исходниками) периодически сбиваются настройки параметров, при очередном запуске идут ошибки и приходится их(настройки параметров) править.
так и есть, разрабатываю программу, запущу в очередной раз- ошибка, остановил прогу -поправил параметры, всё стало ок.
через пару часов запускаю- параметры снова string
VladikBD вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно ли явно уничтожать ADODataSet, ADOCommand и т.д.? leklerk БД в Delphi 1 25.03.2012 20:45
Причуды восприятия (94НН03 С006Щ3НN3) EUGY Свободное общение 7 04.03.2012 23:02
Как передать в Функцию(процедуру) совойство Connection для AdoCommand silent_lab БД в Delphi 3 05.02.2012 08:48
Файл на сайте и как узнать его modified без скачивания его celovec Работа с сетью в Delphi 2 06.09.2011 16:30