Текущий архив: 2003.04.17;
Скачать: CL | DM;
Вниз
IBDataSet Найти похожие ветки
← →
Jaxtor (2003-03-26 18:06) [0]Есть набор данных IBDataSet, полученный из хранимой процедуры.
Нужно его редактировать, а данные сохранять на сервере.
У меня есть метод на AfterPost записывающий изменения.
В ModifySQL у меня строка:
update savepr_atr set GTD=:GTD where SaveProd_ATRID=:SaveProd_ATRID.
Помогите, а то целый день потратил на решение и ничего не получается.
← →
Delirium^.Tremens (2003-03-26 18:09) [1]Параметры в IBDataSet подставляются только в SelectSQL (AFAIK)
:-)
← →
Jaxtor (2003-03-26 18:10) [2]Ну и как мне сохранить данные?
← →
MsGuns (2003-03-26 18:12) [3]т.е. надо тупо динамически формировать запрос на изменение/вставку/удаление, а затем действовать
Append/Edit-Post/Delete ?
← →
Delirium^.Tremens (2003-03-26 18:13) [4]Можно, например, мастерить ModifySQL на лету, подставляя сразу нужные данные, а не параметры.
Разные способы есть.
← →
Jaxtor (2003-03-26 18:15) [5]Да, просто нехорошо на такую операцию тратить так много времени.
← →
Jaxtor (2003-03-26 18:16) [6]>Можно, например, мастерить ModifySQL на лету, подставляя сразу >нужные данные, а не параметры.
Похоже вы правы, а еще какие есть способы?
← →
Delirium^.Tremens (2003-03-26 18:16) [7]А с помощью чего вообще предполагается данные редактировать?
← →
Jaxtor (2003-03-26 18:18) [8]С помощью DBGridEh
← →
Соловьев (2003-03-26 18:20) [9]Так там вообще ничего не надо подставлять. Работаешь с IBDataSet как с Table...
← →
Jaxtor (2003-03-26 18:20) [10]>Так там вообще ничего не надо подставлять. Работаешь с IBDataSet
Там не все так просто как кажется...
← →
Соловьев (2003-03-26 18:24) [11]я рабоют, и никаких проблем и с параметрами манипулирую...
← →
MsGuns (2003-03-26 18:27) [12]>Соловьев © (26.03.03 18:20)
Я работаю через DBGrid, но у меня вставляются почему-то пустые записи :
Данные вносятся не в грид, а в панельке в контролы типа TEdit,TCombobox и т.д.), затем ручками создаю InsertSQL.SQL, потом даю Insert, потом Post - вставляется пустая запись. После этого то ли рефрешу, то ли нет - рез-т один и тот же
Где туплю ?
← →
Jaxtor (2003-03-26 18:31) [13]Сложный компонент IBDataSet... Все нужно вручную набивать.
← →
Соловьев (2003-03-26 18:31) [14]правой кнопкой на компонете, Dataset editor... Выставляем id, потом те поля которые надо апдейтить, а потом нажть на кнопку
Generate SQL... И будет тебе счастье...
← →
Jaxtor (2003-03-26 18:34) [15]>Соловьев © (26.03.03 18:31)
Я работаю с набором данных из хранимой процедуры.Generate SQL не помогает в этом случае. Где PK в этом наборе?
← →
Соловьев (2003-03-27 09:16) [16]2 Jaxtor © (26.03.03 18:34)
А сам ты не догадываешся где? если уж не знаешь то выбери все как ключевые...
← →
Johnmen (2003-03-27 09:48) [17]>MsGuns © (26.03.03 18:27)
Серега, есть два подхода к редактированию данных : с помощью обычных контролов (как у тебя), и с помощью DB Aware контролов.
В первом случае предполагается использование прямых запросов к БД (напр. с пом. TIBQuery), во втором - редактируемых НД (напр. TIBDataSet). Можно конечно делать "смесь" данных подходов, но это, по-моему, извращение...:)
← →
zacho (2003-03-27 09:56) [18]
> Johnmen © (27.03.03 09:48)
> В первом случае предполагается использование прямых запросов
> к БД (напр. с пом. TIBQuery),
Лучше, имхо, TIBSQL :)
← →
Johnmen (2003-03-27 10:01) [19]>zacho © (27.03.03 09:56)
Ну это же был просто пример !
А что лучше, что хуже зависит от конкретных обстоятельств...:)
← →
Jaxtor (2003-03-27 10:07) [20]>А сам ты не догадываешся где? если уж не знаешь то выбери все как ключевые...
Это будет неправильно, т.к. значения ключевых полей не могут
повторяться.
← →
Соловьев (2003-03-27 10:09) [21]
> Это будет неправильно, т.к. значения ключевых полей не могут
> повторяться.
какое-то из них все равно будет уникально :)))
там условие из AND, а не из OR !!!
← →
Jaxtor (2003-03-27 10:25) [22]>если уж не знаешь то выбери все как ключевые...
В этом случае генерится ошибка.
← →
Jaxtor (2003-03-27 10:28) [23]Ошибка, значит,: "Table unknown SNAKL_PROC".
Именно Table, а не SP unknown.
← →
Соловьев (2003-03-27 10:29) [24]SQL диалект 3? в кавычки возми.
← →
Jaxtor (2003-03-27 10:36) [25]>в кавычки возми.
Что взять?
← →
zacho (2003-03-27 10:37) [26]
> Johnmen © (27.03.03 10:01)
Да я и не спорю :-)
← →
Соловьев (2003-03-27 10:39) [27]какой диалект?
название процедуры в кавычки.
select * from "SNAKL_PROC"
← →
Jaxtor (2003-03-27 10:44) [28]Ошибка у меня возникает когда в кавычки беру.
← →
Jaxtor (2003-03-28 15:11) [29]Свой вопрос я решил через использование дополнительной
хранимой процедуры:)
← →
MsGuns (2003-03-28 18:21) [30]>Johnmen © (27.03.03 09:48)
Вчера не мого пробиться на "Мастака" (думал, что сервер побит вирусом ;()).
Да в общем-то я делаю без DB-Aware (типа перестраиваю мозги), а все изменения через TIBSQL (если нет параметров) или TIBQuery, который строю на ходу (у меня обычно всегда лежит один "левый" компонент такого типа, которым я и пользуюсь, модифицируя все и вся, строя запросы динамически).
Однако меня кумарит то, что после каждого такого модифицирования приходится переоткрывать все "живые" запросы (в смысле, курсоры которых в данный момент визибельны через гриды и не только), да еще и позиционироваться куда надо. Все вместе сильно "утяжеляет" код. Вот я и надеялся с помощью TIBDataSet избежать этих "перечиток" с перепозиционированием.
Интуитивно понимаю, что можно как-то проще, но, блин, пока не получается ;((
Страницы: 1 вся ветка
Текущий архив: 2003.04.17;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.007 c