![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Длина поля в таблице 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]> длина полей гораздо меньше описанной в БД.
Примерчик.