Поиск:

Ответ в темуСоздание новой темы Создание опроса
> странная проблема при записи в ADOTable, не дает записать число 6 
V
    Опции темы
demoded
Дата 12.8.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



даже незнаю какой код привести... валится вот тут:

Код

   Bases.adoMaket['PlaceID']:=6;


причем если вместо 6 любое число 0,1,2,3,4,5,7,8,9 - то всенормально записывается и потом добавляется .Post 

а шестерка почему то не проходит. в конструкторе таблицы смотрел - никаких фильтров, дапазонов нет. странно как-то  smile 
PM MAIL   Вверх
Poseidon
Дата 12.8.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Там точно 6 [шесть], а не б [бэ]. Понимаю, что звучит по идиотски, но сам иногда попадался, когда втоматом ставил i:= o to 10.

Добавлено через 55 секунд
Да, и с какой ошибкой "валится"?


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
demoded
Дата 12.8.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



нет там однозначно 6, потому что это цифру получаю из ComboBox2.ItemIndex
пробовал даже через промежуточный i : integer;

ошибка Invalid value for field 'PlaceID'

PM MAIL   Вверх
morpheyushka
Дата 12.8.2008, 16:40 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

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



а если попробывать не индекс дать ему, а в ручную 6 записать - какая реакция будет?
если запишет, то то можно таким способом обойти...


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
pseud
Дата 12.8.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(demoded @  12.8.2008,  12:41 Найти цитируемый пост)
PlaceID

как я понял это ссылка на запись в другой таблице
и вероятно у тебя настроен Foreign Key
значит в связанной таблице нет записи с ID = 6


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


Шустрый
*


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

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



нет это не ссылка и связанных таблиц нет. в это поле ложится CheckBox.ItemIndex, в чекбоксе было 6 записей:
0 - обложка
1 - ЧБ
2 - 1 вкладка
3 - 2 вкладка
4 - 3 вкладка
5 - 4 вкладка

теперь добавилось... вернее не добавляется
6 - нестандарт

morpheyushka пробовал просто 6 записать тоже не дает, после этого и вывалил наболевшее на форум
PM MAIL   Вверх
aleksh
Дата 13.8.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а где нибудь в коде идет проверка этого значения (филды) или сравнения с чем-то? ну например
Код

if .asinteger < 5 then

и куда потом идет это значение (следующая операция с ним)? желательно -- фрагмент кода
PM MAIL   Вверх
pseud
Дата 13.8.2008, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(demoded @  13.8.2008,  05:28 Найти цитируемый пост)
CheckBox.ItemIndex, в чекбоксе было 6 записей:

 smile

Добавлено через 2 минуты и 1 секунду
Цитата(demoded @  13.8.2008,  05:28 Найти цитируемый пост)
теперь добавилось... вернее не добавляется

че та я запутался.
куда не добавляется? в Combobox? в DBLookUpCombobox? (или в CheckBox?)


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


Шустрый
*


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

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



пардон конечно не CheckBox, а Combobox.
вот весь фрагмент, все работает до тех пор пока в из ComboBox2.ItemIndex не приходит цифра 6
пробовал просто Bases.adoMaket['PlaceID']:=6 тоже не работает.
ошибку выдает Invalid value for field 'PlaceID'
Код

    try
      Bases.adoMaket['ZakazID']:=Bases.adoZakaz['ZakazID'];
      Bases.adoMaket['ThemeID']:=ThemeID;
      Bases.adoMaket['SizeID']:=ComboBox1.ItemIndex;
      Bases.adoMaket['PlaceID']:=ComboBox2.ItemIndex;
      Bases.adoMaket['Maket']:=Edit4.Text;
      Bases.adoMaket['Remark']:=Memo1.Lines.Text;
      Bases.adoMaket['SprText']:=Memo5.Lines.Text;
      Bases.adoMaket['PayPlace']:=CheckBox1.Checked;
      Bases.adoMaket.Post;
    except begin ShowWarningBox('Ошибка TZakazSPR.SaveMaket'); Bases.adoTheme.Cancel; end;
    end;

PM MAIL   Вверх
pseud
Дата 13.8.2008, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



следующее предположение:
у тебя в дезайнтайме у ADOTable создано поле PlaceID: TIntegerField, у которого выставленро св-во MaxValue := 5;


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


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

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



Цитата(pseud @  13.8.2008,  09:40 Найти цитируемый пост)
у тебя в дезайнтайме у ADOTable создано поле PlaceID: TIntegerField, у которого выставленро св-во MaxValue := 5; 

Точно...если там 5, то измени ее на нуль: 
Код

MaxValue := 0

 а то вдруг через месяц нужно будет 148-ую запись делать в ComboBox'e:crazy 

Это сообщение отредактировал(а) morpheyushka - 13.8.2008, 10:55


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
demoded
Дата 13.8.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



нет, Min и Max стоят по 0 попробовал выделить Min:=0 Max:=99
все по прежнему - числа 0,1,2,3,4,5,7,8,9 нормально записываются в базу
число 6 никак не хочет.

пока вышел из положения... 6-м пунктом напизал "зарезервировано"
а 7-м оформил как мне надо, но непонятность ситуации напрягает.

PS:  прибивал все DCU пересобирал проект - бестолку
PM MAIL   Вверх
morpheyushka
Дата 13.8.2008, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

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



Цитата(demoded @  13.8.2008,  10:55 Найти цитируемый пост)
пока вышел из положения... 6-м пунктом напизал "зарезервировано"
а 7-м оформил как мне надо, но непонятность ситуации напрягает.

с таким успехом 6 можно вобще переназначить на другое число, например, 666  smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
pseud
Дата 13.8.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(demoded @  13.8.2008,  10:55 Найти цитируемый пост)
число 6 никак не хочет.

100% это проблема ни дельфи ни субд
а бизнес-логика, прописанная тобой (а может до тебя) либо в приложении, либо в БД.


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


Шустрый
*


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

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



воистину экспириенс твой велик о pseud  smile 

действительно грабля оказалась в одном CalculateField который пользовал этот PlaceID и где была недописана обработка 6-ки по причине неожиданно закончившегося рабочего дня.

отдельное спасибо автору-основателю моего проекта, который предложил руками записать в аксесе 6-ку и попробовать ее прочитать smile
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.0606 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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