Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
1

ASP (SQL)=> Access помогите с Update..заносит только Long...

26.11.2009, 21:01. Показов 1335. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема следующая:
После проведения расчётов на страничке, переменным присваиваются значения с типом Double , затем необходимо обновить данные в базе ( Access 2002 ). В таблице базы стоят атрибуты с Double, но SQL запрос на обновление выдаёт ошибку выполнения инструкции SQL!!! Причём, если конвертировать с помощу CLng (переменная), то заносит без проблем!!! Из- за этой проблемы пришлось переколбасить весь алгоритм и опятьт нифига. Будьте добры.. подскажите как... ну уж очень необходимо занести данные в таблицу с 2-мя знаками после запятотй ))) Бухгалтерия не понимает без копепек )
Заранее благодарен!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2009, 21:01
Ответы с готовыми решениями:

Возможно ль переколбасить код ASP (ACCESS) в ASP (MS SQL)?
Проблема втом, что возникла необходимость перехода из БД ACCESS в MS SQL. Несколько прог. Для меня...

Трудности с Update в Access присоединенных SQL Server таблиц
Уважаемые Знатоки, Прилинковал таблицу из SQL 7.0 в Access 97. Открываю ее в Access 97 и...

SQL Access Можно ли в одном запросе объединить Insert,delete,update
Можно ли в одном запросе объединить Insert,delete,update? или делать каждой команде новый запрос?

Delphi,Access, AdoQuery, SQL (UPDATE SET) не вносится boolean значение
Вечер добрый, ну или утро, у кого как) Столкнулся с проблемой, ни как не могу решить, если можете...

9
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
26.11.2009, 22:26 2
Испoльзуйте в Aкцессе decimal data type.
0
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 397
27.11.2009, 01:32 3
Возможно, ошибка связана со SQL-строкой - представление числа с дес.запятой. просмотрите результируюшую строку
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
27.11.2009, 11:11  [ТС] 4
вот собственно чего.. на странице происходит расчёт и запись в переменную (так как под VBS, то тип Variant)... затем присвоение переменной сессии. После вызова процедуры, при нажатии на кнопку, загружается страничка, где значения только что занесённые в сессию, присваиваются переменным, затем идёт обновление таблицы под средством простого запроса... пример вот
По правилам нужно так-

Visual Basic
1
2
3
4
5
Rahunok=session('Rahunok')
LngNakladnaIncomes=CDbl(session('ZagSumInPoNakladni'))
    LngOutgoingNakladna=CDbl(Round(session('ZagSumOutPoNakladni'),2))
    sSQL='UPDATE '&RecRahunok&'  SET LngNakladnaIncomes='&LngNakladnaIncomes&', LngOutgoingNakladna='&LngOutgoingNakladna&' WHERE StrCrntYer='&CrntYer&' AND StrCrntMons='&CrntMons&' ; '
    cn.Execute(sSQL)
Но выбивает ошибку при выполнении инструкции запроса, но если меняю
Visual Basic
1
2
3
LngNakladnaIncomes=CDbl(session('ZagSumInPoNakladni')) 
' на
LngNakladnaIncomes=CLng(session('ZagSumInPoNakladni'))
, то всё нормально заносится..... вот так вот... и не знаю чего делать...
ПЛИС!!!!!! ПОМОГИТЕ!!!
0
IgorM
27.11.2009, 18:57 5
Как уже посоветовал(а) oldpasp, проверь какие разделители у чисел с плавающей точкой после их преобразования в строку...
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
27.11.2009, 21:30  [ТС] 6
ясно.. проверил.. вот что получилось.
В акцесс заносит через запятую..от туда и вытягивает через запятую, а когда даже преобразовывать Cdbl, тоже с запятой, а SQL запрос понимамет через точку. Что делать? В акцессе есть функция formatnumber , а тут что подскажите? Или есть может метод как изменить формат вносимых данных в аксесс? чтоб вносил через точку.
Причину нашёл, но решить проблему пока не знаю как ;(((
0
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 397
27.11.2009, 23:49 7
можно обновлять данные с десятичным разделителем через Recordset.
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
28.11.2009, 00:17  [ТС] 8
Обязательно попробую!!!!! Спасибо за идею!!!! Это даже неплохой вариант Отпишу если что
0
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 397
28.11.2009, 00:18 9
Вот так работает:
Visual Basic
1
2
cnn.Execute 'UPDATE TC SET V5=' & Replace(CStr(CDbl(2/3)),',','.') & ' WHERE ID=2'
cnn.Execute 'UPDATE TC SET V5=CDbl(2/3) WHERE ID=1'
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 243
28.11.2009, 14:43  [ТС] 10
Спасобо!!!!!! Так работает!!! )))
0
28.11.2009, 14:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2009, 14:43
Помогаю со студенческими работами здесь

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в...

ASP (SQL)=> Access .. опять баги с округлением?
Проблема следующая: После проведения расчётов на страничке, переменным присваиваются значения с...

Помогите установить готовый скрипт на asp+sql
Проблемы начинаются при импортировании sql БД из файла (файл в приложении), выводятся след. ошибки:...

Бесплатный хостинг с поддержкой asp+access или sql
znaet li kto nibud otvet na etot vopros? spasibo.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru