Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

Объединение и модификация таблиц Paradox   Найти похожие ветки 

 
Forget   (2004-04-26 10:23) [0]

Cитуация:
Нужно получить данные из нескольких таблиц, отобразить результат в DBGrid"е и мочь его редактировать с соответствующей фиксацией изменений в БД.
Проблема:
Получен Dataset по запросу

query.sql:=" select a,b from c,d";
query.open;

Соответственно, результат отобразился в DBGrid, но доступен только для чтения. Добавлен компонент TUpdateSql, там, всякие поля заполнены, но при нажатии в DBнавигаторе кнопки post изменения всё равно не созраняются в БД. Принудительный код:

procedure TufmUpdate.Button1Click(Sender: TObject);
begin
dm.QueryUpdate.ApplyUpdates;
dm.QueryUpdate.CommitUpdates;
dm.QueryUpdate.close;
dm.QueryUpdate.open;
end;

вызывает исключение.

RequestLive и всякие там рекомендации HELPа вроде бы как соблюдены

Вопрос: как доделать наработку или ваще, как блин сделать то, что  описано в "ситуации"? H E L P!


 
Reindeer Moss Eater ©   (2004-04-26 10:29) [1]

Добавлен компонент TUpdateSql

И все? А тексты для UPDATE он содержит?


 
Forget   (2004-04-26 10:29) [2]

Конечно!


 
Reindeer Moss Eater ©   (2004-04-26 10:31) [3]

вызывает исключение.

Какое?


 
Forget   (2004-04-26 10:39) [4]

Аааа, уже не исключение, а:
"Invalid use of word update. Token line 10".
А запрос в UpdateSql вот такой:

update a
set
b = :b
c = :c
d = :d
where
b = :OLD_b and
c = :OLD_c and
d = :OLD_d


 
Forget   (2004-04-26 10:41) [5]

К тому же использование кнопок DBNavigator а ни к чему не приводит...


 
Anatoly Podgoretsky ©   (2004-04-26 10:41) [6]

Страннно у тебя c и d одновременно и поле и таблица


 
Reindeer Moss Eater ©   (2004-04-26 10:41) [7]

запятые в перечислении обновляемых полей где?


 
ЮЮ ©   (2004-04-26 10:46) [8]

query.sql:=" select a,b from c,d WHERE c.Id = d.c"

>post изменения всё равно не созраняются в БД.
И не должны, если CashedUpdate = true

>procedure TufmUpdate.Button1Click(Sender: TObject);
>begin
>dm.QueryUpdate.ApplyUpdates;
>dm.QueryUpdate.CommitUpdates;
>dm.QueryUpdate.close;
>dm.QueryUpdate.open;
>end;

выбирал в query, а обновляешь dm.QueryUpdate.


 
Forget   (2004-04-26 10:55) [9]

Ну Да!

var queryupdate:TQuery;
dm.queryupdate.sql:="...";


А если CachedUpdate = false,
то Dataset нельзя изменить, запрос Select - из 2-х таблиц!


 
ЮЮ ©   (2004-04-26 11:01) [10]

определись с a,b,с,d !!!

В запросе с и d - никак не связанные таблицы, а и b - два проля, непонятно из каких таблиц.

В зпросе на обновление а - уже тавлица, сожержащая три поля b, c, d


 
Forget   (2004-04-26 11:07) [11]

Sorry, в терминологии - вы правы!
Я делаю сводную таблицу из 2-х (c,d)
Изменяю данные в DBGride,
Пусть, к примеру, Update будет по изменениям только для 1-й таблицы - с, поле а.
По выполнению Update генерится вышеозначенная ошибка.
Вот и всё!


 
ЮЮ ©   (2004-04-26 11:15) [12]

update c
set
a = :a
where
a = :OLD_a

Вот и всё. Только в SELECT все равно надо связать эти таблицы


 
ЮЮ ©   (2004-04-26 11:18) [13]

А точнее

update c
set
a = :a
where
Id = :OLD_Id

т.к. не думаю, что в Gride стоит редактировать PrimaryKey Field(Id, в моем случае), так же как и не стоит использовать таблицы без PrimaryKey



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
7-1081610499
Alexis
2004-04-10 19:21
2004.05.23
Вопрос о процессах и не только...


6-1081178925
-=Demon=-
2004-04-05 19:28
2004.05.23
TClient&TServer-Socket


6-1081246556
FireMan_Alexey
2004-04-06 14:15
2004.05.23
Асинхронные сообщения сокетов!


3-1082912534
windows
2004-04-25 21:02
2004.05.23
изменение dbgrid


3-1082956635
bjohny
2004-04-26 09:17
2004.05.23
Вопрос по FastReport 2.47





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский