powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Доступ по OLEDB к данным в Access
10 сообщений из 10, страница 1 из 1
Доступ по OLEDB к данным в Access
    #36422064
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите синтаксис в строке выбора для OLEDB.
select ?=sum(a1), ?=sum(a2) from Tab where a3 = ?

Соединение открывается правильно к источнику.
a1 и a2 числовые поля, есть в таблице Tab записи
Первые два параметра назначаю направление output последний input.
Добавляю параметры в правильной последовательности, ошибок нет.

Выполняю запрос dr=ExecuteReader и получаю ошибку, ловлю в Catch что проблемы с параметром.
Где то в синтаксисе ошибка? Я привык к MS SQL там было бы @a1 = sum(a1) и т.д.
Таблица в ACCESS, потому и использую OLEDB.

Текст программы ниже.


Function GetData_TRIO(ByVal Par As ParIndTRIO, ByVal d As Date, ByVal Seccode As String) As Ind_TRIO
Dim TR As Ind_TRIO
Dim Vol As Double
Dim Kol As Double
Dim lcn As New OleDb.OleDbConnection(ConnStringInfo)
Dim qstr As String = "select ?=sum(колво), ?=sum(объем) from сделки where код_бумаги = ? "
Dim str As String = " and DATEDIFF(""s"", время, ?) <= "
Dim str_buy As String = " and операция = 'Покупка' and DATEDIFF(""s"", время, ?) <= "
Dim str_sell As String = " and операция = 'Продажа' and DATEDIFF(""s"", время, ?) <= "

Dim cmd As New OleDb.OleDbCommand(qstr, lcn)

Dim pD As New OleDb.OleDbParameter

Dim pSec As New OleDb.OleDbParameter
Dim pT As New OleDb.OleDbParameter


Dim pVol As New OleDb.OleDbParameter
Dim pKol As New OleDb.OleDbParameter

Dim dr As OleDb.OleDbDataReader




REM===========================================================================
REM Проверка открытости соединения
REM===========================================================================
Try

If lcn.State = ConnectionState.Closed Then
lcn.Open()
End If
Catch e1 As Exception ' Ошибка открытия соединения
MsgBox(e1.Message)
End Try

REM===============================================
REM Формируем параметры запроса
REM===============================================
pKol.ParameterName = "@KOL"
pKol.DbType = DbType.Int32
pKol.Direction = ParameterDirection.Output
cmd.Parameters.Add(pKol)

pVol.ParameterName = "@VOL"
pVol.DbType = DbType.Double
pVol.Direction = ParameterDirection.Output
cmd.Parameters.Add(pVol)

pSec.ParameterName = "@SEC"
pSec.DbType = DbType.String
pSec.Direction = ParameterDirection.Input
pSec.Value = Seccode
cmd.Parameters.Add(pSec)


pD.ParameterName = "@D"
pD.DbType = DbType.Date
pD.Direction = ParameterDirection.Input
pD.Value = d
cmd.Parameters.Add(pD)

pT.ParameterName = "@P"
pT.DbType = DbType.Double
pT.Direction = ParameterDirection.Input
pT.Value = Par.T_Long
cmd.Parameters.Add(pT)


cmd.CommandType = CommandType.Text
cmd.CommandText = qstr & str & "?"

Try
dr = cmd.ExecuteReader()
Kol = pKol.Value
Vol = pVol.Value
Catch e2 As Exception ' Ошибка чтения
MsgBox(e2.Message)
Return TR
End Try

. . .


Ошибка

e2.Message = "System.Data.OleDb.OleDbDataAdapter internal error: invalid parameter accessor: 1 BADBINDINFO."
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422067
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто книжку, фрагмент из книжки с примером подскажет как правильно написать.
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422186
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422273
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
тынць
_________________
"Helo, word!" - 17 errors 56 warnings


По ссылке попал на ветку MS Aceess. Там тем много. Можно по конкретнее указать на тему в ветке?
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422324
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых: Не занимайтесь оверквотингом
Во-вторых: вот в ветке о M$ Aceess и спросите как Ваш M$ SQL'ный запрос будет выглядеть перевариваемым M$ Aceess'ом.
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422334
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
Во-первых: Не занимайтесь оверквотингом
Во-вторых: вот в ветке о M$ Aceess и спросите как Ваш M$ SQL'ный запрос будет выглядеть перевариваемым M$ Aceess'ом.
_________________
"Helo, word!" - 17 errors 56 warnings


Меня не Access интересует а доступ к базе на Access из VB.NET. Если бы доступ был к SQL серверу вопроса вообще бы не было. Там все работает через SQLClient. Мне кажется вопрос по OLEDB должен относиться к ветке ADO а не ACCESS.
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422340
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
Во-первых: Не занимайтесь оверквотингом
Во-вторых: вот в ветке о M$ Aceess и спросите как Ваш M$ SQL'ный запрос будет выглядеть перевариваемым M$ Aceess'ом.
_________________
"Helo, word!" - 17 errors 56 warnings


В сообщении много текста потому что первоначально сообщение было размещено в Visual Basic.
Сообщение составлено из нескольких сообщений, где меня просили уточнить и уточнять, а потом порекомендовали в эту ветку обратиться. Получается какое то жонглирование из ветки в ветку.
Если не знаете ответа и не можете помочь, так зачем же отсылаете в неизвестном направлении и отнимаете мое время. Не нравится тема, не читайте, не смотрите, не отвечайте.
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422494
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Май
Если бы доступ был к SQL серверу вопроса вообще бы не было. Там все работает через SQLClient.

Угу... И SQL запросы выполняет тоже SQLClient?
Май
Мне кажется вопрос по OLEDB должен относиться к ветке ADO а не ACCESS

Это Вам - кажется. В конечном итоге, вне зависимости посредством чего Вы достукиваетесь к СУБД (OLEDB, ODBC etc), запросы выполняет СУБД, а не эти прокладки. По сему, если Вы пытаетесь скормить СУБД запрос, который она априори не может переварить, то Вы хоть сотню прокладок поменяйте - он не выполнится "...хоч гопки плигай..." Вот поэтому я и отправил Вас к M$ Accrss'овцам дабы проверить валидность Вашего запроса в контексте сдюжит ли его M$ Access. А, вот, если он его может переварить, тогда - да. Прокладка виновата. Грубо говоря: ловим льва в пустыне и на данном этапе отрабатываем вариант с M$ Access'ом.
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36422537
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft
Май
Если бы доступ был к SQL серверу вопроса вообще бы не было. Там все работает через SQLClient.

Угу... И SQL запросы выполняет тоже SQLClient?
Май
Мне кажется вопрос по OLEDB должен относиться к ветке ADO а не ACCESS

Это Вам - кажется. В конечном итоге, вне зависимости посредством чего Вы достукиваетесь к СУБД (OLEDB, ODBC etc), запросы выполняет СУБД, а не эти прокладки. По сему, если Вы пытаетесь скормить СУБД запрос, который она априори не может переварить, то Вы хоть сотню прокладок поменяйте - он не выполнится "...хоч гопки плигай..." Вот поэтому я и отправил Вас к M$ Accrss'овцам дабы проверить валидность Вашего запроса в контексте сдюжит ли его M$ Access. А, вот, если он его может переварить, тогда - да. Прокладка виновата. Грубо говоря: ловим льва в пустыне и на данном этапе отрабатываем вариант с M$ Access'ом.
_________________
"Helo, word!" - 17 errors 56 warnings


Конечно я в первую очередь проверил запрос в самом Access
Не могу только проверить в нем самом параметры. Потому и спрашиваю про синтаксис работы с параметром.
Я в качестве справки использую книгу Visual Basic.NET Библия пользователя.(стр. 416-417 Часть IV Технология Data Access)
В ней написано что для SQLClient, SQLCommand можно использовать именованные параметры.
Но для OleDB именованные параметры не используются, вместо них - ? . И порядок добавления параметров для OleDB важен. Порядок я выполнил, проверил много раз.

На SQLClient я достаточно много уже написал для доступа к SQL2005. Но вот старый добрый Access меня подкосил:)
...
Рейтинг: 0 / 0
Доступ по OLEDB к данным в Access
    #36424008
Май
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тему закрываю. Нашел обходной путь, а именно плюнул на эти параметры и строю запрос просто конкатенацией с нужными данными . Но вообще чувствую что работа с access извне очень непроизводительна по сравнению с sql2005 например. Скорость выбора данных существенно отличается.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Доступ по OLEDB к данным в Access
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]