|
|
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
мне нужно встав в гриде на определенную запись и вызвав меню, отредактировать одно поле у выделенной записи. Раньше использовал компоненты Table, проблем небыло, Сейчас нужно пользоваться компонентами только Query и не пойму как. пробую так: DataModule1->IBQuery1->SQL->Add("edit * from DOCUMENTS where PERVICH = 0"); //открываю данные которые нужны на редактирование //как отредактировать? if (FMain->OpenDialog->Execute()) DataModule1->IBQuery1->FieldValues["PATHDOC"] = FMain->OpenDialog->FileName; //смысл открыть диалог и выбрать новый путь к файлу. //сохраняю изменения DataModule1->IBQuery1->ExecSQL(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 14:37 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
IBQuery - только для Select. Тебе нужен IBUpdateSQL в добавок к IBQuery . Не забудь связать их пл св-ву UpdateObject. А ваще правильнее вместо этих двух использовать один IBDataSet. И обязательно учить SQL - составлять простейшие запросы. Несмотря на то, что в вышеуказанных компонентах есть удобный механизм для чайников - xEditor (вызывается правым кликом на компоненте). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2003, 16:05 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
1man я думаб ты не прав, что IBQuery только для селекта... я думаю ты в этом совсем не прав... более того IBUpdateSQL это просто контейнер для скриптов, которые и извлекает из него IBQuery. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 03:24 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
StarWind: Приведи, пожалуйста, пример использования одного IBQuery. Я такого никогда не видел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 07:38 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
StarWind , ты конечно прав! Мой пост был рекомендацией для новичка. Очень торопился, надо было вставить "желательно" , "категорически советую" и пр. Рекомендации же для новичка имхо правильны: использовать IBDataSet и т.д. А в случае использования IBQuery хранить запросы на UPDATE и пр. все же логичнее в связанном с ним IBUpdateSQL, если они не меняются динамически. ИМХО, конечно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2003, 10:16 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
А можно конкретней пример как мне сделать! Поставил компонент "IBDataSet" вместо "Query", попытался сделать что мне нужно и не работает. В "IBDataSet1->SelectSQL" сделал выборку, и как мне теперь в "DBGrid1" встав на определенную запись исправить в ней поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2003, 10:11 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
1man вот видишь и непонятки тут надо подробно Indian а какие траблы? в SQL заряжаешь скажем insert... а в проге говоришь ExecSQL и все дела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 05:42 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
Ну с INSERT все понятно, запись новая вставится. Я СПРАШИВАЛ как работать редактированием записей. (компоненты Update и Query) Делаю так: AnsiString npath = "новое значение"; В компоненте IBQuery1 запросом сформирован набор даненых, который требуется для просмотра и редактирования. select * from DOCUMENTS where PERVICH = '0' . Компонент IBUpdateSQL1 направлен на компонент IBQuery1. В компоненте записывается запрос на обновление: IBUpdateSQL1->ModifySQL->Add("update DOCUMENTS set EDOCNAME =:EDOCNAME, PATHDOC =:PATHDOC where EDOCNAME = :OLD_EDOCNAME and PATHDOC = :OLD_PATHDOC"); - Как (где в коде) мне нужно присвоить выбранной строке "DBGrid1" в полю "PATHDOC" присвоить значение переменной "npath" ??? - И сохранить все это?? Просьба, сказать словами как это делается или показать просто пример (кусок кода). Знающих как решить мой вопрос, но удерживающих в тайне это, Просьба воздержатся от флуда ( ненужные сообщения. Для этого есть "болталки" в сети). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 10:01 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
а какие проблемы? во-первых не забудь заполнить свойство RefreshSQL и если у тебя редактирование происходит в гриде, то никаких проблем, так и редактируй. А если надо в коде подставить где-то, то на Before Update вешаешь строку IBQuery1.FieldByName().AsString := 'test' и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 10:54 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
Чтот совсем туплю. Вроде копоненты InterBase одинаковы с просто SQLевскими, но не как не разберусь с InterBase. В гриде естеств. проблем нет редактирования и записи. Но мне нужно сделать чтоб по правому клику мыши открывался диалог выбора файла и новый путь записывался а поле БД. Вот так пытаюсь делать. if(FMain->OpenDialog->Execute()) { AnsiString npat = FMain->OpenDialog->FileName; DataModule1->IBQuery1->Edit(); // DataModule1->IBQuery1->FieldByName("PATHDOC")->AsString = npat; // DataModule1->IBUpdateSQL1->ModifySQL->Add("update DOCUMENTS set EDOCNAME =:EDOCNAME, PATHDOC =:PATHDOC where" // "EDOCNAME = :OLD_EDOCNAME and PATHDOC = '"+npat+"'"); DataModule1->IBQuery1->ExecSQL(); } Не разберусь что и куда подключить в компонентах. Читал встроенный в билдер хелп не помог, а книги нет(. Нет ли у кого примерчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 14:37 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
Salesпробую так: DataModule1->IBQuery1->SQL->Add("edit * from DOCUMENTS where PERVICH = 0"); //открываю данные которые нужны на редактирование А попробуй select * from DOCUMENTS where PERVICH = 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2003, 20:45 |
|
||
|
Подскажите как в С++В и InterBase....
|
|||
|---|---|---|---|
|
#18+
Sales DataModule1->IBUpdateSQL1->ModifySQL->Add("update DOCUMENTS set EDOCNAME =:EDOCNAME, PATHDOC =:PATHDOC where" // "EDOCNAME = :OLD_EDOCNAME and PATHDOC = '"+npat+"'"); это у тебя уже должно быть записано в свойстве ModifySQL а вот этого не должно быть DataModule1->IBQuery1->ExecSQL(); и в принципе все зарулит.... не забывй только про транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2003, 03:39 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=465&tid=2035681]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 348ms |

| 0 / 0 |
