Вопрос про ADOшный Recordset
От: UncleNick  
Дата: 17.08.04 12:42
Оценка:
Всем привет.
Имеется один вопросик, который я никак не могу решить.
Дело вот в чем. Есть трехзвенная архитектура, для доступа к данным используется ADO, язык программирования VC++. Объект бизнес-логики имеет COM-интерфейс, который позволяет получить данные из определенной талицы с определенными условиями. Данные клиенту передаются в виде отключенного Recordset'а. Клиент может эти данные редактировать и послать Recordset обратно бизнес-логике, которая Update'ит эти данные в БД. Нужно при Update узнать исходный Source Recordset'а (SQL текст, с помощью которого он открывался). Беда в том, что при передаче Recordset'а от бизнес-логики клиенту свойство Source Recordset'а обнуляется и я уже не могу узнать SQL текст, которым открыт Recordset. Может быть кто-нибудь подскажет, как узнать SQL текст, имея Recordset с пустым свойствои Source?
Всем заранее спасибо за ответы.
Re: Вопрос про ADOшный Recordset
От: UncleNick  
Дата: 17.08.04 13:44
Оценка:
Попутно еще один вопросик:
Можно ли сделать такой SELECT по таблице (единичной), чтобы в полученном Recordset'е имена полей были в виде — ИмяТаблицы.ИмяПоля?
Заранее спасибо за ответ!
Re[2]: Вопрос про ADOшный Recordset
От: rockandroll Казахстан  
Дата: 18.08.04 02:15
Оценка:
Здравствуйте, UncleNick, Вы писали:

UN>Можно ли сделать такой SELECT по таблице (единичной), чтобы в полученном Recordset'е имена полей были в виде — ИмяТаблицы.ИмяПоля?


select NAME "TABLE1.NAME" from TABLE1
... << RSDN@Home 1.1.4 >>
Re: Вопрос про ADOшный Recordset
От: rockandroll Казахстан  
Дата: 18.08.04 02:15
Оценка:
Здравствуйте, UncleNick, Вы писали:

--skipped--

Немного не в тему: сейчас в моде XML...
... << RSDN@Home 1.1.4 >>
Re: Вопрос про ADOшный Recordset
От: lazymf Россия  
Дата: 18.08.04 05:27
Оценка:
Здравствуйте, UncleNick, Вы писали:

UN>Может быть кто-нибудь подскажет, как узнать SQL текст, имея Recordset с пустым свойствои Source?


Скорее всего — никак. Во всяком случае мы в подобной ситуации стали передавать Source вместе с рекордсетом отдельным параметром, ничего лучше не нашли.
silent
Re[2]: Вопрос про ADOшный Recordset
От: UncleNick  
Дата: 18.08.04 10:51
Оценка:
Здравствуйте, lazymf, Вы писали:

L>Здравствуйте, UncleNick, Вы писали:


UN>>Может быть кто-нибудь подскажет, как узнать SQL текст, имея Recordset с пустым свойствои Source?


L>Скорее всего — никак. Во всяком случае мы в подобной ситуации стали передавать Source вместе с рекордсетом отдельным параметром, ничего лучше не нашли.


К сожалению, клиент не должен иметь доступа к Source (если он отдельно) после открытия Recordset'а, т.к. кроме всего прочего Source используется для контрроля доступа. А в открытом Recordset Source как раз read only.
Re[3]: Вопрос про ADOшный Recordset
От: UncleNick  
Дата: 18.08.04 10:59
Оценка:
Здравствуйте, rockandroll, Вы писали:

R>Здравствуйте, UncleNick, Вы писали:


UN>>Можно ли сделать такой SELECT по таблице (единичной), чтобы в полученном Recordset'е имена полей были в виде — ИмяТаблицы.ИмяПоля?


R>select NAME "TABLE1.NAME" from TABLE1


Честно говоря, не в курсе что за аргумент NAME в SELECT'е. В стандартном SQL я такого не нашел. Может это какое-то расширение языка? В любом случае, ни с MS SQL Server, ни с Access такой запрос не работает.
Re[4]: Вопрос про ADOшный Recordset
От: rockandroll Казахстан  
Дата: 19.08.04 03:05
Оценка:
Здравствуйте, UncleNick, Вы писали:

UN>>>Можно ли сделать такой SELECT по таблице (единичной), чтобы в полученном Recordset'е имена полей были в виде — ИмяТаблицы.ИмяПоля?


R>>select NAME "TABLE1.NAME" from TABLE1


UN>Честно говоря, не в курсе что за аргумент NAME в SELECT'е. В стандартном SQL я такого не нашел. Может это какое-то расширение языка? В любом случае, ни с MS SQL Server, ни с Access такой запрос не работает.


NAME — имя поля в таблице. Показываю на живом примере (Ms SQL)

SELECT NAME 'PRODUCT.NAME' FROM PRODUCT

PRODUCT.NAME
--------------------

-- results skipped --

(208 row(s) affected)
... << RSDN@Home 1.1.4 >>
Re[5]: Вопрос про ADOшный Recordset
От: UncleNick  
Дата: 19.08.04 11:43
Оценка:
Здравствуйте, rockandroll, Вы писали:

R>Здравствуйте, UncleNick, Вы писали:


UN>>>>Можно ли сделать такой SELECT по таблице (единичной), чтобы в полученном Recordset'е имена полей были в виде — ИмяТаблицы.ИмяПоля?


R>>>select NAME "TABLE1.NAME" from TABLE1


UN>>Честно говоря, не в курсе что за аргумент NAME в SELECT'е. В стандартном SQL я такого не нашел. Может это какое-то расширение языка? В любом случае, ни с MS SQL Server, ни с Access такой запрос не работает.


R>NAME — имя поля в таблице. Показываю на живом примере (Ms SQL)


R>SELECT NAME 'PRODUCT.NAME' FROM PRODUCT


R>PRODUCT.NAME

R>--------------------

R>-- results skipped --


R>(208 row(s) affected)


Спасибо, я понял о чем вы говорите. Но, во-первых, с MS Jet такой запрос не проходит. А во-вторых, нужно получать все поля из таблицы, при том, что в общем случае не известно какие поля там есть (то бишь, SELECT *).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.