![]() |
![]() |
![]() |
|
ADODB.CONNECTION - open() вылетает с ошибкой если год - 2012.. | ☑ | ||
---|---|---|---|---|
0
vechiy
18.06.12
✎
18:26
|
В общем, подключаюсь к sql-базе и выполняю запрос..
SQLConnection = Новый COMObject("ADODB.Connection"); SQLConnection.Open("Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=***;Initial Catalog=***;Data Source=***"); Recordset = Новый COMObject("ADODB.Recordset"); Recordset.ActiveConnection = SQLConnection; СтрокаSQL="DECLARE @p_Date Date='2012-03-31' | DECLARE @DateN Date='2012-01-01' |SET @p_Date='"+ДатаКонцаПериода+"' -- дата конца периода |SET @DateN='"+ДатаНачалаПериода+"' --дата начала периода | SELECT ****"; Recordset.Open(СтрокаSQL,SQLConnection,2,3); Recordset.MoveFirst(); SQLConnection.Close(); Собственно, если одна из дат - в 2012 году - при open() возникает ошибка {Форма.Форма.Форма(90)}: Ошибка при вызове метода контекста (Open) Recordset.Open(СтрокаSQL,SQLConnection,2,3); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Время ожидания запроса истекло в 2011, как ни странно, все в порядке.. в management studio запрос отлично отрабатывает с любым периодом в чем может быть дело?) |
|||
1
smaharbA
18.06.12
✎
18:31
|
SET DATEFORMAT dmy; ?
|
|||
2
alexei366
18.06.12
✎
18:31
|
Может и не то, просто помню брал данные с двух мс баз , были на разных серверах и формат даты у них был разный, типа гггг-мм-дд и гггг-дд-мм. Вдруг у тя в 2011 году дни не больше 12 были
|
|||
3
vechiy
19.06.12
✎
09:10
|
как увеличить время ожидания запроса?:) Видимо, проблема в этом
|
|||
4
vechiy
19.06.12
✎
16:49
|
или, что означают параматетры 2 и 3 в Recordset.Open(СтрокаSQL,SQLConnection,2,3); ?
|
|||
5
shuhard
19.06.12
✎
16:49
|
(4) adOpenDynamic, adLockOptimistic
|
|||
6
smaharbA
19.06.12
✎
16:54
|
Команда.CommandText=Стр;
Команда.CommandTimeout=0; Записи=Команда.execute(); |
|||
7
vechiy
19.06.12
✎
16:56
|
Периодически вываливается еще вот с этим:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена. ну и иногда и срабатывает как нужно, видимо, от нагрузки на сервер зависит время запроса |
|||
8
smaharbA
19.06.12
✎
16:59
|
cv (6)
|
|||
9
smaharbA
19.06.12
✎
17:00
|
см (6)
|
|||
10
vechiy
19.06.12
✎
17:04
|
что такое "записи" в моем коде? СтрокаSQL?
|
|||
11
smaharbA
19.06.12
✎
17:10
|
(10) это результат запроса, тот самый рекордсет
|
|||
12
vechiy
19.06.12
✎
17:36
|
так и подумал сначала.. но ругается что нет такого свойства
|
|||
13
vechiy
19.06.12
✎
17:37
|
или туплю.. что тогда такое команда?)
|
|||
14
vechiy
19.06.12
✎
18:05
|
внесите ясность если знаете) спасибо) не находится что-то ничего про это свойство
|
|||
15
Jaap Vduul
19.06.12
✎
18:20
|
SQLConnection.CommandTimeout = 0;
Recordset = SQLConnection.Execute(СтрокаSQL); |
|||
16
Vladal
19.06.12
✎
18:31
|
Дату в SQL передавай в соответствии с региональными настройками самого сервера SQL.
|
|||
17
vechiy
20.06.12
✎
09:28
|
Спасибо) с утра все понятней
SQLConnection.CommandTimeout = 0; вот так нормуль |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |