Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 21.03.2013, 15:12   #1
VladikBD
 
Регистрация: 21.03.2013
Сообщений: 4
Репутация: 10
Восклицание 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
Сообщений: 25,626
Репутация: 5617
По умолчанию

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

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

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

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

Цитата:
Сообщение от 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
Сообщений: 4,897
Репутация: 2195
По умолчанию

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


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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно ли явно уничтожать 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


11:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru