|
|
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
у меня проблема, а причину наити не могу: Dim rsAll As New ADODB.Recordset ... strSQL = " SELECT " & text1.Text & ", " & text2.Text & " FROM " & txtSource.Text strSQL = strSQL & " WHERE col3 = 4 " strSQL = strSQL & " AND " & text2.Text & " IS NOT NULL " strSQL = strSQL & " AND (substr( " & text2.Text strSQL = strSQL & " , instr(to_char(" & text2.Text & "),',') + 1, length(" strSQL = strSQL & text2.Text & ")) <= 2 )" strSQL = strSQL & " ORDER BY " & text1.Text rsAll.Open strSQL, m_ConnOracle.GetActiveConnection, adOpenDynamic, adLockReadOnly rsAll.MoveFirst ну и результат ноль! а если я то же самое SQL прямо в SQL PLUS Oracla задаю, то получаю правельный результат. SQL: SELECT col1, col2 FROM tab1 WHERE col3 = 4 AND col2 IS NOT NULL AND (SUBSTR( col2 , INSTR(TO_CHAR(col2),',') + 1, LENGTH(col2)) <= 2 ) ORDER BY col1 Может кто-то уже с подобным сталкивался? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 12:40:36 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
В аксе нет функций SubStr и Lenght, а есть Mid и Len... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 16:02:13 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
а я их и не использую как функции VB. это составлющие SQL для Oracle и находятся они в кавычках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 17:17:46 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
а что за ошибку дает? а если так: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 17:31:39 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
Код: plaintext очепятался, сорри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 17:32:28 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
а никакой ошибки не выдаёт. просто Recordset пустой а если на прямую в Oracle задать, то есть результат. значит SQL правильное. видимо ADODB что-то не поддерживает, только вот что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 17:53:01 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
А если открыть как статический и на стороне клиента? Динамический не все провайдеры поддерживают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 17:57:07 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
до сих пор никаких проблем с динамичискими не было. самое странное, что если я SQL немного изменю, то никаких проблем, правда резултат не тот, что мне нужен SQL: SELECT col1, col2 FROM tab1 WHERE col3 = 4 AND col2 IS NOT NULL AND (SUBSTR( col2 , INSTR(TO_CHAR(col2),',') + 1, LENGTH(col2)) <= 2 OR col4 is not null ) ORDER BY col1 ничего не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 18:22:51 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
поняла что " (SUBSTR( col2 , INSTR(TO_CHAR(col2),',') + 1, LENGTH(col2)) <= 2 )" полностью игнорируется. почему? в моём понятии Recordset просто передаёт String в Oracle и забирает результат. видимо это не так. в чём моя ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 18:30:50 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
А что хотите найти то? Мне кажется что конструкция Код: plaintext (строку, начинающуюся после ",") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 19:42:30 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Т.е. 124,10 в выборку не попадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 19:49:27 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
вообще-то я хочу найти все строчки, у которых не больше двух цифр после запятой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.02.2005, 23:34:37 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
тогда так: LENGTH(SUBSTR( col2 , INSTR(TO_CHAR(col2),',') + 1, LENGTH(col2))) <= 2 но еще раз предупреждаю: цифры 12,100 сюда не попадут. а сколько нулей после запятой поставит провайдер, лучше спросить на форуме по ораклу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2005, 09:43:38 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
Поправлюсь. Провайдер тут не при чем, но с лишними нулями надо что то делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2005, 19:43:20 |
|
||
|
ADODB.Recordset --> результат ноль, Oracle --> всё нормально
|
|||
|---|---|---|---|
|
#18+
Проверьте что за строка получается в strSQL - это раз Поменяйте строку подключения - это два Оракл тут не причем, но проверьте какая установлена кодировка Владислав Беляев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 10:15:15 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32934321&tid=2168170]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 301ms |

| 0 / 0 |
