![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка преобразования!? [D7, MSSQL]
VadimSpb © (2006-01-09 11:36:00)Получаю следующую ошибку преобразования типа данных при запросе.
Вариант №1.
ADOCommand.CommandText := 'INSERT INTO Table1 (Pole1) Values (100.45);
ADOCommand.Execute;
Pole1 - типа float.
Все замечательно работает.
Вариант №2.
Edit1.Text := '100.45';
ADOCommand.CommandText := 'INSERT INTO Table1 (Pole1) Values (' + Edit1.Text + ')';
ADOCommand.Execute;
Не работает!!!
Ошибка: '100.45' is not a valid floating point value.
Может проблема в длительных Новогодних праздниках?
VadimSpb (2006-01-09 20:24:00) [1]
> делаем следующий вывод - ты до сих пор пытаешся "пудрить
> нам мозги" списывая собственные промахи на "неведомый подземный
> стук".
Жаль что встретил определенное непонимание.
Каждый может делать свои выводы.
sniknik (2006-01-09 20:22:00) [2]советую всеже приводить код as is, и с запасом +- несколько строк, а не только то что сами считаете важным "избранное так сказать", очищая с вашей точки зрения "шелуху" убираете и то что пытаетесь донесть (если бы знали, что именно нужно, то сами бы легко разпознали ошибку, а раз не распознали...).
sniknik (2006-01-09 20:18:00) [3]> В Accesse как-то проходило, а сейчас правлю под SQL SERVER вот и полезло.
ни Access ни MSSQL здесь ни причем,
ошибка:
> 'xxxxxx' is not a valid floating point value.
дельфевая, это ошибка преобразования строки к флоату (EConvertError). преобразований в коде ([0]) нет. делаем вывод - эта часть "опущена как несущственная"
в MSSQL было бы (на преобразование)
Error converting data type xxxxxx to float
а в Access типа
Несоответствие типов данных в выражении условия отбора
делаем следующий вывод - ты до сих пор пытаешся "пудрить нам мозги" списывая собственные промахи на "неведомый подземный стук".
VadimSpb (2006-01-09 20:14:00) [4]Забавно было видеть именно ошибку преобразования типа данных.
Это откуда? Формируется и передается именно стринга.
Desdechado (2006-01-09 20:03:00) [5]повторю для тех, кто в танке
используй параметры, не будет надуманных и не очень проблем
VadimSpb (2006-01-09 19:49:00) [6]Однако, сделал. Всем спасибо.
"Забытых" процессов не было, проверил сразу.
Все проще и одновременно грустнее.
Просто заменил Edit на новый - и все!
Похоже, что это результат перехода с D7 на D2005. Уже не в первый раз сталкиваюсь с тупыми проблемами (напр. поведение MessageBox, пришлось переписать на API и пр., а оказалось лечится SP1,2,3).
В Accesse как-то проходило, а сейчас правлю под SQL SERVER вот и полезло.
VadimSpb (2006-01-09 16:53:00) [7]
> Я тут мимо пробегал...
> Может ОН думает, что это не текст, а цифры. Или наоборот.
> Гы. А может ему фиолетово?
Будете проходить мимо - проходите мимо.
Dioman (2006-01-09 16:46:00) [8]
> VadimSpb (09.01.06 16:27) [15]
>
> Очень полезный совет. Часто помогает?
>
не часто, но может помочь ;)
parovoZZ (2006-01-09 16:41:00) [9]Я тут мимо пробегал...
Может ОН думает, что это не текст, а цифры. Или наоборот. Гы. А может ему фиолетово?
Fay (2006-01-09 16:40:00) [10]2 VadimSpb (09.01.06 16:23) [13]
> Пример простой, поробуйте сами
Всё ОК
VadimSpb (2006-01-09 16:27:00) [11]Очень полезный совет. Часто помогает?
dioman (2006-01-09 16:25:00) [12]
> VadimSpb (09.01.06 16:23) [13]
переустанови виндоуз.
VadimSpb (2006-01-09 16:23:00) [13]Да-а, уж и не думал, что в обмане обвинят ... :-((
Мне совсем не до смеха, дурка полная. В отладчике вижу две одинаковые стринги. Пример простой, поробуйте сами.
А запятую там в принципе нельзя ставить - это и ежу ясно.
sniknik (2006-01-09 16:00:00) [14]> в обоих примерах на сервер идут одинаковые строки....
если выполняется тот код, что показан нам. (!!!)
но думаю он опустил разные "несущественные" (с его точки зрения) детали, и мы здесь видим совершенно не то, что у него выполняется (и дает ошибку), т.е. он нас попросту обманывает. или "разводит" (что тоже возможно).
Dioman (2006-01-09 15:52:00) [15]
> Desdechado © (09.01.06 14:56) [8]
в обоих примерах на сервер идут одинаковые строки....
Anatoly Podgoretsky (2006-01-09 15:51:00) [16]Desdechado © (09.01.06 14:56) [8]
Ну он вроде как пишет, что точка, но думаю обманывает.
Fay (2006-01-09 15:00:00) [17]2 Desdechado © (09.01.06 14:56) [8]
На сервере всегда точка. В '100.45' тоже точка. Видимо, не очень разные.
Desdechado (2006-01-09 14:56:00) [18]используй параметры и все будет ок
проблема в непонимании разделителя целой и дробной части
на клиенте и сервере они могут быть разные, причем как понастройкам ОС, так и сервера БД
Fay (2006-01-09 14:52:00) [19]2 tech © (09.01.06 14:37) [6]
Попробуйте
ADOCommand.CommandText := 'INSERT INTO Table1 (Pole1) Values ( 100.45 )';
tech (2006-01-09 14:37:00) [20]Попробуйте
ADOCommand.CommandText := 'INSERT INTO Table1 (Pole1) Values (' + Trim(Edit1.Text) + ')';