Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.007 c
4-11569
Infinity2
2002-09-15 13:25
2002.11.04
Какой тип хука надо поставить что бы отловить wm_timechange?


1-11251
Semion
2002-10-23 08:24
2002.11.04
Подскажите где найти


1-11136
Gari
2002-10-22 14:49
2002.11.04
Скрыть свойства.


14-11488
Beginner-Designer
2002-10-16 20:37
2002.11.04
ПРо провайдеров, которые дают доступ через guest-guest


6-11362
BAHO
2002-09-03 00:39
2002.11.04
Трафик





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский