|
|
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Пишу следующее: sub (qwe as duble) currentdb.execute ("UPDATE tabl SET tabl.z7=" & qwe &"fhfdnffgfgfgfgn") end sub Дело в том, что qwe подает число в виде 48 , 458796 Запросу же нужна такая запись 48 . 458796(с точкой вместо запятой) Какая мааленькая функция проделывает то что надо. Подскажите, кто знает, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:12 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
CDbl ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:14 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Format А вообще присоединять к стрингу не-стринг - это всегда нехорошо. Особенно если это дата, но вот оказалось, что и с числовыми данными тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:16 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Нет. Не CDbl, а Str(qwe)!!! Пока писал, сам догадался. :) Извините за идиотский вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:18 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Вру... Возвращает в соответствии с региональными настройками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:19 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Отстал от поезда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:20 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
На тему переименования топиков: этот можно переименовать как "Плавающая запятая -> плавающая точка" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2004, 21:22 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Не советую писать "duble" в объявлении sub. Да, в таких случаях imho оптимально делать str$(), переводить имеющееся число в строку, делать ей trim$(), и уже потом заменять в ней все запятые на точки. У этого преимущество перед любыми встроенными функциями в независимости от региональных настроек системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 02:46 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
маякНе советую писать "duble" в объявлении sub. А здесь этого, кажется, и нет. маякДа, в таких случаях imho оптимально делать str$(), переводить имеющееся число в строку, делать ей trim$(), и уже потом заменять в ней все запятые на точки. У этого преимущество перед любыми встроенными функциями в независимости от региональных настроек системы. Про отличия str$ и str (просто так, кому еще не встречалось): /topic/91339 trim для запросов не нужно - здесь все равно, есть или нет пробел перед числом. И "," на "." менять тоже не надо - str[$] вернет уже с точкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 02:56 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Нет, в объявлении процедуры double есть. 2 Маяк: а почему double не привествуется именно при объявлении процедуры. Чем это чревато? (причины, мотивации пожалуйста :) Нет, действительно, если могут быть какие казусы, то какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 10:18 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
маяк хотел сказать примерно о следующих 3-х случаях. Человек, собственной рукой объявляющий формальные параметры процедуры имеет в голове представление о способе использования самой процедуры/функции. Так если функция предназначена для использования в запросах, то вероятен Null как входной фактический параметр. Тогда объявление double вызовет ошибку времени исполнения. Аналогично, если в sub планируется передавать непосредственно значения контролов mySub Form.MyControl то история с Null воспроизводится. И наконец, в вашем случае формальный параметр объявлен имплицитно byRef. Это значит, что при передаче sub-у в качестве параметра выражения, приводимому в результате вычисления к типу, отличному от double, тоже будет возникать ошибка времени исполнения. Например sub clng(myVal)+1 -> выражение clng(myVal)+1 приведется к Long ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 10:32 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что в этом топике обсуждается не вопрос правильности передачи параметров в процедуру, а вопрос склейки стрингов для запросов, если в стринге присутствует числовая, не целая переменная с ",". Проблема, действительно актуальная, особенно когда программа устанавливается в другой стране с другими региональными определениями представления числа. Я раньше боролся с подобной проблемой посредством функции, которая переводила число в стринг и проверяла нет ли в нем ",". Совсем недавно узнал о другом методе, он несколько громоздок, но дает преимущества: не надо думать о региональных установках и очень нагляден. пример кода: Код: plaintext 1. 2. 3. 4. 5. Что вы думаете по этому поводу? P.S. Я обычно не люблю пользоваться параметрами в запросе, но утверждается, что такой код работает быстрее, так как он якобы предкомпилирован ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 11:12 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
На самом деле ничего из перечисленного данной функции не грозит. Victosha, спасибо, но вот что интересует: "параметр объявлен имплицитно byRef" Действительно раньше я не понимал, с чем связана данная ошибка, когда пытался послать данные типа Variant. Так, для общего развития - а, что, можно как-то по другому определить входные параметры для функции, чтобы не возникало ошибки byRef? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 11:14 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Ну - ByVal например :) Типа в хелпе подробности :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 11:54 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
Geotrim для запросов не нужно - здесь все равно, есть или нет пробел перед числом. И "," на "." менять тоже не надо - str[$] вернет уже с точкой.Неправда твоя! Это всецело зависит от твоих региональных настроек. Которые могут быть любыми. Invisible2 Маяк: а почему double не привествуется именно при объявлении процедуры. Чем это чревато? (причины, мотивации пожалуйста :) Victoshaмаяк хотел сказать примерно о следующих 3-х случаях.Всё много проще! Я рекомендовал не использовать DUBLE, вместо него аксесс с радостью съест double . %)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 00:14 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
маякНеправда твоя! Это всецело зависит от твоих региональных настроек. Которые могут быть любыми. Откуда такая уверенность ? Неужели так трудно проверить, перед тем как написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 00:26 |
|
||
|
Плавающая запятая в SQL строке
|
|||
|---|---|---|---|
|
#18+
(c)VIG маякЭто всецело зависит от твоих региональных настроек. Которые могут быть любыми. Откуда такая уверенность ? Неужели так трудно проверить, перед тем как написать?Что такое? Если соврал, то извиняюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 12:41 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1614&tid=1673953]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 361ms |

| 0 / 0 |
