Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Помогите кто нибудь пожалуйста. Уже неделю парюсь! У меня БД на Sybase к которой я обращаюсь из Web приложения. Использую OLE DB, провайдер ASAProv9.0. Проблема в том что у меня не читаются строки размером больше 200 байт, хотя в базе данных они могут быть как просто VARCHAR 1000 допустим так и Long Varchar. Не могу понять в чем проблема. Буду очень признателен! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 06:45 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
А можно посмотреть текст запроса, возвращающие данные и кусочек кода, где Вы определяете, что строки обрезались ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:00 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Запросы любые напримар Select Message from Messages где Message VarChar(1000). Дело в том что переменная просто не читается и возвращается либо пустое значение либо предыдущее. Код может быть следующего содержания. OleDbConnection conn = DBConnection.getConnection(); OleDbCommand cmd = conn.CreateCommand(); String id = ctx.getDataObject().getIdent(); cmd.CommandText = "select MessageText,Messageid,objectid from Messages where ObjectID = " + id; OleDbDataReader rdr= cmd.ExecuteReader(); byte[] mBuffer = new byte[sf]; while(rdr.Read()) { Message msg = new Message(); msg.setText(Convert.ToString(rdr[0])); msg.setUser(SecurityHelper.getCurrentUser()); msg.setIdent(Convert.ToString(rdr["messageid"])); msg.setObjectID(Convert.ToString(rdr["objectid"])); ctx.getMessages().Add(msg); } rdr.Close(); conn.Close(); в данном примере msg.setText ничего не смогла установить так как rdr[0] ничего не вычитала из запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:07 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Запрос точно записи возвращает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:12 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Конечно возвращает. Это происходит при любых запросах, в котрых возвращаемые данные размером больше 200 байт, в данном случае строка MessageText. Причем соседние поля читаются нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:17 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Кстати, сам не работаю с C#. Но посмотрел примерчики в папке %ASANY9%\Sample\ADO.NET, там значения String полей берутся не так, как у Вас: reader.GetString( 0 ) а не: Convert.ToString(rdr[0]); Поиграйтесь с их примерчиками, думаю дело не в OLEDB провайдере ASA, а в ADO.NET - где то, что то Вы просто неправильно делаете. Код свой еще на форум ADO.NET киньте, возможно в нем сразу там что то увидят C#-ники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:19 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Да дело совсем не в том как я считываю данные(я пробывал всеми возможными способами) дело в том что DataReader их не считывает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 07:24 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Ну Вы все таки попробуйте стандартные демки кода ASA протестить. У меня не стоит на домашней машине VS.NET, но помнится проблем со стрингом на ADO.NET я не испытывал. Правда подключался я не через OLE провайдер, а нативный ASA-шный, там все прекрасно работало. Кстати - какой EBF стоит, может быть стоит накатить последний и если возможно воспользоваться нативным драйвером доступа, который в последнем EBF еще имеет свой ASA Database Manager к VS.NET по образу и подобию MSSQL Database Manager, что дает возможность просто на формы перетаскивать обьекты БД, оставляя генерацию кода на его совесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 09:11 |
|
||
|
Sybase & ASP.NET
|
|||
|---|---|---|---|
|
#18+
Чтоб точно определиться проблема в длине строки или в клиенте, поправьте свой запрос на "select left(MessageText,50),Messageid,objectid from Messages where ObjectID = ...". И тогда точно будет известно. У нас читаются строки из ASP.Net и бОльшие по длине чем 200 символов, только мы юзаем обычный ODBC драйвер - и никаких проблем. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 23:01 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=88&tid=2013052]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 348ms |

| 0 / 0 |
