2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
|
||||||
1 | ||||||
Ошибка при преобразовании типа данных varchar к int26.03.2013, 22:35. Показов 4640. Ответов 6
Метки нет Все метки)
(
Есть 3 таблицы:
Покупатели - customer(id,name,city,phone,rating) поставщики - supplier(id,name,city,phone) договор - contract(id,cust_id,sup_id,date,sum) Пытаюсь сделать приложение для работы с БД. На одной из форм для таблицы contract использую компонент DBLookupcomboboxEh. В нем появляется список покупателей, выбираю одну из фамилий, а в бд нужно занести его id. Аналогично с поставщиками. Проблема состоит в том, что при добавление новой записи(заключении нового договора) появляется такая ошибка: Ошибка при преобразовании типа данных varchar к int. Как я понимаю в DBLookupcomboboxEh отображается фамилия (тип nvarchar), а id (int). Подскажите пожалуйста как исправить эту ошибку. Параметры DBLookupcomboboxEh вроде настроены правильно: Для покупателей: DataField-cust_id DataSource-DataModule2.ContractDataSource KeyField-id ListField-name ListSource-DataModule2.CustomerDataSource C поставщиками аналогично. Код (для добавления записи):
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
26.03.2013, 22:35 | |
Ответы с готовыми решениями:
6
Ошибка при преобразовании типа данных varchar к int Ошибка при преобразовании типа данных varchar к int Ошибка при преобразовании типа данных varchar к real
|
568 / 291 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
|
||||||||||||||||||||||||||||||||||||
27.03.2013, 01:24 | 2 | |||||||||||||||||||||||||||||||||||
Вместо
Да и вообще нужно использовать параметризированный запрос. Вместо
Избегайте названий полей и переменных зарезервированными словами т.к. это не минуемо приведет к ошибкам. В этой строке не ясно в каком виде вы храните суммы но скорее всего необходимо сделать так как я написал.
Так же перед выполнением
Можно конечно плеваться ошибками о невозможности преобразования. Но лучше сделать замену символа на тот что применяется в системе.
1
|
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
|
|||||||||||
27.03.2013, 18:22 [ТС] | 3 | ||||||||||
rdama, спасибо большое, сделала как вы сказали:
Не знаю как исправить! У поля sum тип данных real. В системе используется разделитель "." Как сделать замену символа, на тот что применяется в системе? Пробовала и вот этот код:
Помогите пожалуйста!
0
|
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
|
|
28.03.2013, 22:52 [ТС] | 4 |
Ну что...никто не поможет???
0
|
58 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
|
||||||
28.03.2013, 23:20 | 5 | |||||
1
|
2 / 2 / 1
Регистрация: 23.01.2013
Сообщений: 52
|
|
28.03.2013, 23:43 [ТС] | 6 |
Спасибо, помогло, но теперь новая ошибка: Ошибка при преобразовании типа данных nvarchar к date
Не подскажите,что не так? Добавлено через 9 минут Получилось! Заменила строку на Parameters.ParamByName('c_date').Value := DateToStr(unit5.Form5.dtp1.Date); Вроде работает!
0
|
58 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
|
||||||
28.03.2013, 23:46 | 7 | |||||
замените переменную date: string; скажем на dt: string;
У Вас цепляется ф-ция
0
|
28.03.2013, 23:46 | |
Помогаю со студенческими работами здесь
7
Ошибка преобразования значения varchar в тип данных int Ошибка при преобразовании int в fpos_t "Ошибка при преобразовании типа данных nvarchar к bigint" Ошибка преобразования значения varchar в тип данных int" Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |