Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема в использовании ADO.Command / 17 сообщений из 17, страница 1 из 1
17.02.2004, 16:21
    #32412310
Проблема в использовании ADO.Command
При выполнении следующего кода (ASP.Javascript) получаю ошибку (см. ниже):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var Connection = Server.CreateObject( "ADODB.Connection" );
		Connection.Open( "Provider=Microsoft.JET.OLEDB.4 . 0 ;Data Source="+Server.MapPath( "\\.site\\db\\main.mdb" ));
	var Command = Server.CreateObject( "ADODB.Command" );
		Command.ActiveConnection = Connection;
		Command.CommandText =  "SELECT * FROM branches WHERE (branches.BranchID=?);" ;
		Command.Parameters.Refresh();
		Command.Parameters( 0 ) = Param( "id" );
	var RS = Command.Execute();

	if (! RS.EOF){
		var id=RS( "BranchID" );
		var region=RS( "Region" );
		var name=RS( "Name" );
		var date=RS( "Date" );
		var description=RS( "Description" );
		%>
		<! -- #include file="form.htm" -->
 
		<%
	}else{
		Print( "Запись с таким id (" +Param( "id" )+ ") не существует в базе данных." );
	}


Ошибка: Текущий объект Recordset не поддерживает обновление. Это связано с ограничением поставщика или с выбранным типом блокировки.

/.admin/manage/branch/save.asp, line 26


Как "заставить" Recordset поддержать обновление?
Спасибо!
...
Рейтинг: 0 / 0
17.02.2004, 16:23
    #32412320
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
авторЭто связано с ограничением поставщика или с выбранным типом блокировки
Именно с типом блокировки
По умолчанию ReadOnly
...
Рейтинг: 0 / 0
17.02.2004, 16:24
    #32412323
Проблема в использовании ADO.Command
Извините, не тот кусок кода кинул:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<%
	var id=Param( "Id" );
	var region=Param( "Region" );
	var name=Param( "Name" );
	var date=Param( "Date" );
	var description=Param( "Description" );

	var Connection = Server.CreateObject( "ADODB.Connection" );
		Connection.Mode= 3 ;
		Connection.Open( "Provider=Microsoft.JET.OLEDB.4 . 0 ;Data Source="+Server.MapPath( "\\.site\\db\\main.mdb" ));
	var Command = Server.CreateObject( "ADODB.Command" );
		Command.ActiveConnection = Connection;
		Command.CommandText =  "SELECT * FROM branches WHERE (branches.BranchID=?);" ;
		Command.Parameters.Refresh();
		Command.Parameters( 0 ) = id;
	var RS = Command.Execute();

	if (! RS.EOF){
		RS( "Region" )=region; //Line  26  <<<<<<<<<<<<<<<<<<<
		RS( "Name" )=name;
		RS( "Date" )=date;
		RS( "Description" )=description;
		RS.Update();
		Print( "Изменения сохранены" );
	}else{
		Print( "Запись с таким id (" +Param( "id" )+ ") не существует в базе данных." );
	}
%>
...
Рейтинг: 0 / 0
17.02.2004, 16:28
    #32412331
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
А неважно что не тот кусок

Ф1 писал по поводу ExecuteThe returned Recordset object is always a read-only, forward-only cursor. If you need a Recordset object with more functionality, first create a Recordset object with the desired property settings, then use the Recordset object's Open method to execute the query and return the desired cursor type.

Делаешь рекордсет, делаешь
Код: plaintext
rst.LockType = adLockOptimistic: Set rst.Source = cmd: rst.Open

и наслаждаешься жизнью
...
Рейтинг: 0 / 0
17.02.2004, 16:34
    #32412351
Проблема в использовании ADO.Command
А какое значение у константы adLockOptimistic (а то у меня ругается)?
...
Рейтинг: 0 / 0
17.02.2004, 16:36
    #32412356
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
матьматьмать
Как же ты без хелпа то живешь

3
...
Рейтинг: 0 / 0
17.02.2004, 16:37
    #32412361
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
здесь ближе на F2 кликать :)
...
Рейтинг: 0 / 0
17.02.2004, 16:38
    #32412366
Проблема в использовании ADO.Command
Огромнейшее спасибо!!!

ЗЫ Очень тяжело без хелпа, где его взять только... ?
...
Рейтинг: 0 / 0
17.02.2004, 16:39
    #32412370
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
2 Артист
Один хрен. В хелпе значения этих констант тоже приведены
...
Рейтинг: 0 / 0
17.02.2004, 16:41
    #32412378
Артист
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
ЗЫ Очень тяжело без хелпа, где его взять только... ?
в vba редакторе F2 жмякаешь в поле поиска adLockOptimistic
или хелп(F1) к офисному vba (ставится с офисом)
читаш, наслаждаешся ...
...
Рейтинг: 0 / 0
17.02.2004, 16:49
    #32412393
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
у меня на страничке по этому поводу примерчик висит

раздел : строки подключения адо
...
Рейтинг: 0 / 0
17.02.2004, 16:50
    #32412398
Проблема в использовании ADO.Command
Можно я вас еще немного поэксплуатирую? Итоговый кусок:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
<%
	var id=Param( "Id" );
	var region=Param( "Region" );
	var name=Param( "Name" );
	var date=Param( "Date" );
	var description=Param( "Description" );

	var Connection = Server.CreateObject( "ADODB.Connection" );
		Connection.Mode= 3 ;
		Connection.Open( "Provider=Microsoft.JET.OLEDB.4 . 0 ;Data Source="+Server.MapPath( "\\.site\\db\\main.mdb" ));
	var Command = Server.CreateObject( "ADODB.Command" );
		Command.ActiveConnection = Connection;
		Command.CommandText =  "SELECT * FROM branches WHERE (branches.BranchID=?);" ;
		Command.Parameters.Refresh();
		Command.Parameters( 0 ) = id;
	var RS=Server.CreateObject( "adodb.recordset" );
		RS.LockType =  3 ;
		RS.Source = Command;
		RS.Open();

	if (! RS.EOF){
		RS( "Region" )=region;
		RS( "Name" )=name;
		RS( "Date" )=date;
		RS( "Description" )=description;
		RS.Update();
		RS.Close();
		Print( "Изменения сохранены" );
	}else{
		Print( "Запись с таким id (" +Param( "id" )+ ") не существует в базе данных." );
	}
%>

Почему он мне сохраняет все данные в поле "Region"?
Спасибо
...
Рейтинг: 0 / 0
17.02.2004, 16:54
    #32412412
Проблема в использовании ADO.Command
То есть заносит их туда через запятую...
...
Рейтинг: 0 / 0
17.02.2004, 17:01
    #32412431
Проблема в использовании ADO.Command
sorry, ступил... QueryString() в ASP возвращает значение всех параметров через запятую...
...
Рейтинг: 0 / 0
17.02.2004, 17:03
    #32412437
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
видимо потому что они в таком виде переданы в переменную
...
Рейтинг: 0 / 0
17.02.2004, 17:07
    #32412440
Проблема в использовании ADO.Command
Я дебил,
в форме забыл переименовать поля... так все и были region.

Всем спасибо, тема закрыта!
...
Рейтинг: 0 / 0
17.02.2004, 17:08
    #32412448
PA
PA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема в использовании ADO.Command
Чтобы не мучаться с объвлениями констант ADO, достаточно всунуть в страницу объявление:
<!--#include File="adojavas.inc"-->
А сам файл обычно лежит тут:
c:\Program Files\Common Files\System\ado\
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема в использовании ADO.Command / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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