Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизРедактирование записи (без сохранения) ADOStoredProc. Найти похожие ветки
← →
Jony (2002-10-16 13:41) [0]Помогите решить проблему(?).
Необходимо отредактировать одну запись ADOStoredProc. Сохранять не нужно (будет сохраняться другими средствами). Напрямую запись для редактирования закрыта, и, как я понимаю, сделать ее редактируемой нельзя. Не хочется связываться с Editами - уж больно много писанины. К сожалению, не работал с временными таблицами или компонентами типа ТMemoryTable из RX-библиотеки.
Подскажите выход, и если можно, поподробней.
← →
sniknik (2002-10-16 13:46) [1]не работал с временными таблицами? это просто! делаеш
select * into #InvoicesDouble from Invoices
потом можно
select * from #InvoicesDouble
и все, ни о чем заботится не надо. таблица автоуничтожится после засершения сессии.
← →
Jony (2002-10-16 13:58) [2]>sniknik
Я ж говорил, что не работал с временными таблицами.
Мне нужно вытащить одну запись с довольно навороченной хранимой процедуры. Значит в качестве приведенногоInvoices
мне нужно указать свою ХП и условие выборки?
← →
Jony (2002-10-16 14:06) [3]И указывать ту, что на сервере, или ADOStoredProc из приложения?
← →
sniknik (2002-10-16 14:59) [4]не ты не понял. я не прикалывался, просто повторил тебя и привел пример работы с временной таблицей, скорее этот пример для работы в процедуре.
а вот указать в селекте вместо таблици процедуру? не пройдет. надо как то по другому.
перефразируй задачу, как ты хочеш редактировать но не записывать? может проше перегнать данные в слиентдатасет? и редактируй себе на здоровье.
или взять данные из таблици (как в примере) а не через процедуру, или они там формируются?.
в общем подробнее pls.
← →
Jony (2002-10-16 15:25) [5]Подробнее.
Данные, с которыми мне нужно работать, иначе, как через ХП не достать (идет разворачивание простой таблицы в большую шахматку, по существу в куб, потому что в каждую ячейку шахматки вытягивается несколько совершенно разных данных - числовое значение, дата, строка). Одна запись ХП представляет несколько записей из исходной таблицы. Так вот, мне нужно отредактировать значения в записи ХП и сохранить в соответствующих записях исходной таблицы. Вторая часть трудности не представляет - через ADOQuery с Insert или Update все получается хорошо. А вот как изменить значения в записи ХП - не знаю. Непосредственно в ХП или через временную таблицу с информацией - самый простой способ. Выкидывать информацию в Editы - очень трудоемко.
← →
sniknik (2002-10-16 17:14) [6]ну если через временную таблицу самый простой путь то можно так
(для примера я взял стандартную процедуру)
создаем временную таблицу (поля как процедура возвращает)
CREATE TABLE #table (Database_Name Char(30), Database_Size Char(30),Remarks Char(30))
заполняем (в селекте нельзя в инсерте почемуто можно, вопрос почему? я неправильно селекты задаю?)
insert into #table exec sp_databases
ну и выбираем
select * from #table (и редактируем редактируем .... до посинения :о)))
← →
Jony (2002-10-16 17:23) [7]Спасибо большое! Сейчас буду пробовать. О результатах отчитаюсь.
← →
Jony (2002-10-16 18:16) [8]Рано радовался.
Процедура то с параметрами. А как в конструкцию
insert into #table exec sp_databases
которая в свою очередь вставляется в ADOQuery, вставить параметры?
← →
sniknik (2002-10-16 18:54) [9]передавать ему параметры, и зачем все впихивать в один квери можно хоть каждую команду отдельно (хотя для MSSQL можно и все и несколько селектов подряд).
ADOCommand.CommandText:= "CREATE TABLE #Table (Catalog_Name Char(30), Column1 Char(30))";
ADOCommand.Execute;
ADOCommand.CommandText:= "insert into #Table EXEC sp_catalogs ""DBF"""; //специально взял в нее параметр передается (у вас не сработает у вас линка DBF нет, скорее всего, я его сам делал)
ADOCommand.Execute;
или тоже через параметр
ADOCommand.CommandText:= "insert into #Table EXEC sp_catalogs :MyLinkSrv";
ADOCommand.ParamByName("MyLinkSrv").Value:= "DBF";
ADOCommand.Execute;
и наконец
ADOQuery.SQL.Text:= "select * from #table";
ADOQuery.Open;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c