powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема в использовании ADO.Command
17 сообщений из 17, страница 1 из 1
Проблема в использовании ADO.Command
    #32412310
При выполнении следующего кода (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
Проблема в использовании ADO.Command
    #32412320
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЭто связано с ограничением поставщика или с выбранным типом блокировки
Именно с типом блокировки
По умолчанию ReadOnly
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412323
Извините, не тот кусок кода кинул:
Код: 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
Проблема в использовании ADO.Command
    #32412331
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А неважно что не тот кусок

Ф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
Проблема в использовании ADO.Command
    #32412351
А какое значение у константы adLockOptimistic (а то у меня ругается)?
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412356
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
матьматьмать
Как же ты без хелпа то живешь

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

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

раздел : строки подключения адо
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412398
Можно я вас еще немного поэксплуатирую? Итоговый кусок:
Код: 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
Проблема в использовании ADO.Command
    #32412412
То есть заносит их туда через запятую...
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412431
sorry, ступил... QueryString() в ASP возвращает значение всех параметров через запятую...
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412437
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
видимо потому что они в таком виде переданы в переменную
...
Рейтинг: 0 / 0
Проблема в использовании ADO.Command
    #32412440
Я дебил,
в форме забыл переименовать поля... так все и были region.

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


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