Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Длина поля в таблице MySQL [D7, MySQL]


Сергей А. ©   (2006-08-24 17:30:00) 

Установил соединение с MySQL с использованием компонентов ADO. В редакторе полей вижу, что длина полей гораздо меньше описанной в БД. Если в редакторе полей я увеличиваю длину, то при сохранении изменений в БД происходит ошибка.


Сергей А.   (2006-08-25 11:51:00) [1]

Спасибо за внимание, нашел решение. В настройках ODBC поставил "Don't otimize column width"


sniknik   (2006-08-25 11:27:00) [2]

> Дали мне такое описание таблицы User:
> ...
не стыкуется с
> пишу select ... смотрю их размер по умолчанию:
> ...
размер по умолчанию при добавлении полей берется из базы (открывается соеденение, запрашивается соответствующая схема... и т.д.), т.е. в данном конкретном случае я бы больше верил значениям по умолчанию чем тому что тебе дали.

ну или как вариант, у выбраного тобой провайдера данных не реализовано/глючно получение схем...
но т.к. провайдером кроме тебя наверняка пользуется еще куча народу то... ну не самописный же он?


Сергей А.   (2006-08-25 10:18:00) [3]

Дали мне такое описание таблицы User:
ID: integer (PK)
FIO: varchar(255)
Email: varchar(255)
Password: varchar(100)
Phone: varchar(100)
Address: varchar(255)
Я подключаюсь к базе, в ADODataSet1.CommandText пишу select ID, FIO, Email, Password, Phone, Address from user, в редактор полей добавляю все поля и смотрю их размер по умолчанию:
FIO: 17
Email: 18
Password: 3
Phone: 7
Address: 12
Запускаю приложение, в гриде добавляю строку и начинаю заполнять данными, в поле FIO нельзя вносить больше 17 символов. Возвращаюсь в ADODataSet и изменяю длину поля FIO на 50. В гриде вношу значение длиной в 50 символов и сохраняю. Получаю EOleExeption "Произошли ошибки во время выполнения пошаговой операции. Проверьте значения всех операций."
В этой таблице уже была одна запись. Размеры содержимого строковых полей как раз и соответствуют той длине, что по умолчанию берется в DataSet.


Anatoly Podgoretsky   (2006-08-24 20:56:00) [4]

Точно меньше, не путаешь?


Desdechado   (2006-08-24 19:05:00) [5]

>  длина полей гораздо меньше описанной в БД.
Примерчик.


Наверх

Титульная страница Поиск, карта сайта Написать письмо