|
|
|
Forum Member
      
участник
Last Login: 23.11.2001 16:34
Сообщ.: 30,
Visits: 331
|
|
Господа, подскажите, если можете...
Сначала - введение, по простоте душевной, при работе с базами использую следующую конструкцию (ввиду ее краткости и удобства):
dim cn, rs set cn = Server.CreateObject("ADODB.Connection") cn.Open strDB set rs = cn.Execute(strSQL)
где strDB - корректная строка соединения с базой данных, strSQL - запрос к базе который нужно выполнить.
Теперь сам вопрос - необходимо добавить в базу запись и узнать ее идентификатор для дальнейшей обработки (банально). Выполняю:
INSERT INTO myTable (field1, field2) VALUES (1,2); SELECT @@IDENTITY AS 'ID';
то обратиться к получаемому rs как к rs("ID") не получается... ошибка выходит... по сути, проблема ясна -- в результате запроса получается не один рекордсет, а два... первый - пустой, второй - нужный, но как добраться до второго??? подскажите, очень нужно...
и еще, если я дам подряд:
set rs = cn.Execute("INSERT INTO myTable (field1, field2) VALUES (1,2)") set rs = cn.Execute("SELECT @@IDENTITY AS 'ID'")
то существуют ли шансы, что я полу не свой @@IDENTITY??? вроде бы он уникален для каждого соединения с базой данных... так??? может быть это и есть возможное решение???
|
|
|
|
|
Forum Member
      
участник
Last Login: 28.06.2002 21:38
Сообщ.: 47,
Visits: 518
|
|
Получить второй Recordset можно rs.NextRecordset. Если же ты хочешь просто узнать количество обновленных строк, то выполняй SQL через Command метод Execute которой вторым пареметром принимает переменную в которой возвращает количество записей, на которые воздействовала операция. Кстати, Recordset возвращает только операция Select.
|
|
|
|
|
Forum Member
      
участник
Last Login: 23.11.2001 16:34
Сообщ.: 30,
Visits: 331
|
|
о, блин, спасибо, удивительная оперативность :))
кстати, моешь что-нибуьд сказать по этой теме: http://www.relib.com/forums/topic.asp?id=732192
|
|
|
|