Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Привет, всем

Никто не сталкивался с подобным траблом:

в списке полей селекта значатся два поля ntext, в рекордсет возвращается только значение первого поля.

Заранее благодарен
10 фев 05, 17:00    [1314192]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
JRM
Member

Откуда:
Сообщений: 138
А поподробнее:
1. Сам запрос
2. Код, где из рекордсета данные вытаскиваются

Иначе долго все догадываться будут, что и как ;)
10 фев 05, 17:04    [1314205]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
да запрос на самом деле тривиальнейший, имхо не в нем дело.
селект без джойнов, без where клоузе, просто выбор 4 полей из таблицы, где два из них типа ntext.
при респонсврайте двух полей ntext выводится только первое, по отдельности выводятся оба...
10 фев 05, 17:12    [1314237]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
JRM
Member

Откуда:
Сообщений: 138
Еще раз - хотите конкретной помощи - ответьте на конкретные вопросы ;) Они же не просто так заданы были.

Иначе ответ будет примерно такой: понятия не имеем...
10 фев 05, 17:16    [1314255]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Была такая проблема. Но она вроде пофиксена в последних MDAC'ах.

Общая рекомендация, чтобы такого не случалось - все блоб-поля должны быть перечислены в списке SELECT последними.

_________
Свет в конце тоннеля временно потушен по техническим причинам.
Картинка с другого сайта.
10 фев 05, 17:22    [1314279]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
MDAC 2.8
попробовал только Blob-поля в селекте указать, та же ботва
10 фев 05, 17:47    [1314345]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Set objCon = Server.CreateObject("ADODB.Connection") 
strCon = "Driver={SQL Server};Server=TestServer;Uid=test;Pwd=test;Database=Test;Locale Identifier=1033"
objCon.Open(strCon)
objRst.Open "SELECT CompanyDescription, Website FROM States WHERE UserID=41" 
Response.Write objRst("Website") & "<br>"
Response.Write objRst("CompanyDescription")

CompanyDescription, Website - ntext (не пустые, скрипт в аналайзере отрабатывает)
10 фев 05, 18:00    [1314385]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Shuhard
Member

Откуда:
Сообщений: 5002
на asp не пишу,могу предположить ,что
первый
Response.Write objRst("Website")
- сдвигает указатель в Recordset
я бы попробовал убрать where в предположении ,что записей >1
10 фев 05, 19:13    [1314596]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
А мне сдаётся, что провайдера лучше выбрать MSOLEDB, чтоб без ODBC на пути обойтись
10 фев 05, 20:32    [1314703]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Проверил.
Что характерно, в VBA работает нориально и SQLOLEDB и MSDASQL, под vbscript - только SQLOLEDB
10 фев 05, 20:41    [1314709]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Смена механизма доступа с OLE DB на ODBC и наоборот никакого результата не принесла. Чую я, что баг это мелкософта...
10 фев 05, 22:01    [1314787]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
В нужном порядке обращения к полям поставил (как в селекте) ?
10 фев 05, 22:27    [1314825]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
что значит в нужном? во where клаузе всего два поля и оба ntext
10 фев 05, 22:29    [1314828]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Выбирай в том же порядке, как они перечислены в селекте
10 фев 05, 22:41    [1314840]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Завтра попробую, но мне кажется бестолку, хотя...это ж мелкософт
10 фев 05, 22:55    [1314850]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
itON
Смена механизма доступа с OLE DB на ODBC и наоборот никакого результата не принесла. Чую я, что баг это мелкософта...


гоните вы чего-то

' adopted as VBScript from microsoft.com
Dim cn 'As ADODB.Connection
Dim rs 'As ADODB.Recordset
Dim mstream 'As ADODB.Stream
Set cn = CreateObject("ADODB.Connection") 					
cn.Open "Provider=sqloledb;Data Source=regal;Integrated Security=SSPI"
Set rs = CreateObject("ADODB.Recordset")
rs.Open "Select top 1 logo,pr_info from pubs..pub_info where datalength(logo)>0 and datalength(pr_info)>0", cn, 1, 3 'adOpenKeyset, adLockOptimistic
Set mstream = CreateObject("ADODB.Stream")
mstream.Type = 1 ' adTypeBinary
mstream.Open
mstream.Write rs.Fields("logo").Value
mstream.SaveToFile "c:\_logo.gif", 2 'adSaveCreateOverWrite
mstream.Close
mstream.Type = 2 ' adTypeText
mstream.Open
mstream.WriteText rs.Fields("pr_info").Value
mstream.SaveToFile "c:\_pr_info.txt", 2 'adSaveCreateOverWrite

mstream.Close
Set mstream = Nothing
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

and next time I would recommend you to use proper "Форум" since it has nothing to do with SQL.
11 фев 05, 00:13    [1314916]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
2BugsBunny
я не гоню, не ямщик.
Стараюсь решить не свой трабл, а хорошим людям помогаю
Спасибо за врезку, но по-моему они безуспешно пробовали через Fields("fieldname").Value выводить значения.

And the title Microsoft SQL Server Forum wouldn't be correct, cause this forum is not only about SQL itself, imho
11 фев 05, 13:30    [1315466]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
Alexey Sh
Member

Откуда: SPB
Сообщений: 1930
Поменял местами CompanyDescription, Website
в
SELECT CompanyDescription, Website FROM States WHERE UserID=41
?

p.s. Говорят же, последовательность извлечения NTEXT полей из рекордсета должна совпадать с последовательностью перечисления полей в SELECT
11 фев 05, 14:02    [1315596]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
itON
Member

Откуда: Москва
Сообщений: 391
Всем большое спасибо за потраченное время на этот квазиофтопик, оказалось, они юзали какой-то фердпати OLE DB провайдер, после перехода на SQLOLEDB все зашуршало.
11 фев 05, 15:09    [1315952]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: ASP+ADO+MS SQL  [new]
sahard
Member

Откуда:
Сообщений: 113
Та же проблема.

vbscript обрашается к sql server 2008 express с простым запросом:

Set cn_sql = Server.CreateObject("ADODB.Connection")
cn_sql.Open ("Driver={SQL Server Native Client 10.0};Server=551227A949DC4BE\SQLEXPRESS;Database=tn1111;Trusted_Connection=yes;")

Set rs_sql = Server.CreateObject("ADODB.Recordset")

rs_sql.Open = "SELECT TOP (100) PERCENT tx, tn  FROM mytbl where tn = 4412390000", cn_sql, 3, 2 , 1


потом

<%=rs_sql.fields("tx").value %>
<%=rs_sql.fields("tn").value %>


С первым полем всё Ок.
Второе поле пустоё.
Причем, если коннектится к аналогичной таблице в Аккессе, то все тоже Ок.
Я так понял, что тогда проблему решили подключением через другой драйвер.
А через какой еще драйвер можно подключиться к 2008 sql из vbscript?
14 апр 12, 15:38    [12416979]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
sahard,

1. Нахрена при работе через ADO использовать провайдер ODBC?
2. Нахрена в запросе TOP 100 PERCENT?
3. А откуда, собственно, уверенность, что поле пустым быть не должно? Какие данные возвращает запрос? Какой используется сервер? Какого типа поля?
14 апр 12, 15:51    [12417018]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
sahard
Member

Откуда:
Сообщений: 113
Нахрена при работе через ADO использовать провайдер ODBC?


Потому что по другому пока не получилось. Учусь!

Нахрена в запросе TOP 100 PERCENT?


От конструктора запросов осталось. Без него тоже самое.

А откуда, собственно, уверенность, что поле пустым быть не должно? Какие данные возвращает запрос?


Потому что из MMSM возвращает текст на русском. Из Аккесса подключаюсь к SQL - тоже все видно.


Какой используется сервер? Какого типа поля?


Поле nvarchar, пробовал и varchar. В аккесе - мемо. А сервер 2008 express с расширенными настройками

Все траблы в дето в связке SQL server - vbscript
14 апр 12, 16:09    [12417071]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
sahard
Нахрена при работе через ADO использовать провайдер ODBC?


Потому что по другому пока не получилось. Учусь!

А как по другому пробовали?

sahard
А откуда, собственно, уверенность, что поле пустым быть не должно? Какие данные возвращает запрос?


Потому что из MMSM возвращает текст на русском. Из Аккесса подключаюсь к SQL - тоже все видно.


Какой используется сервер? Какого типа поля?


Поле nvarchar, пробовал и varchar. В аккесе - мемо. А сервер 2008 express с расширенными настройками

Все траблы в дето в связке SQL server - vbscript

Не знаю, что такое MMSM, но раз даже оттуда запрос возвращает правильный результат, значит проблема в вашем скрипте. Обратитесь в профильный форум.
14 апр 12, 16:13    [12417077]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
sahard
Member

Откуда:
Сообщений: 113
Не знаю, что такое MMSM,


Среда Microsoft SQL Server Management Studio в самом

но раз даже оттуда запрос возвращает правильный результат, значит проблема в вашем скрипте.


только из аккеса он все нормально возвращает...

А как по другому пробовали?


Дык в интернете примеров много, а сработал только один пока.
-----
В вобщем сейчас попробовал заменить
автор
Driver={SQL Server Native Client 10.0


на
автор
Provider=SQLNCLI10



Текст появился, но перестал работать RecordCount

Вернул все назад, и о чудо: все заработало.

Недаром сегодня пасха и чудеса Господни!
14 апр 12, 16:30    [12417142]     Ответить | Цитировать Сообщить модератору
 Re: ASP+ADO+MS SQL  [new]
iljy
Member

Откуда:
Сообщений: 8711
sahard
Не знаю, что такое MMSM,


Среда Microsoft SQL Server Management Studio в самом

Общепринятое сокращение SSMS.
sahard
но раз даже оттуда запрос возвращает правильный результат, значит проблема в вашем скрипте.


только из аккеса он все нормально возвращает...

У аксесса другие типы полей и другие провайдеры.

sahard
В вобщем сейчас попробовал заменить
автор
Driver={SQL Server Native Client 10.0


на
автор
Provider=SQLNCLI10



Текст появился, но перестал работать RecordCount

RecordCount работает только для определенных типов курсоров, это документированно.

sahard
Вернул все назад, и о чудо: все заработало.

Недаром сегодня пасха и чудеса Господни!

Пасха - завтра. Так что сегодня причину искать придется в чем-то другом. Начните с рук.
14 апр 12, 16:48    [12417201]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить