Главная страница
    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.089 c
7-1082190027
Sanek_metaller
2004-04-17 12:20
2004.05.23
Отклучение службы


1-1084350468
AngelSAI
2004-05-12 12:27
2004.05.23
Печать таблицы


14-1083468735
mfender
2004-05-02 07:32
2004.05.23
Я вижу в нем "американский английский" ! :)


1-1083828107
xman
2004-05-06 11:21
2004.05.23
Запуск моей программы


3-1083241816
kaif
2004-04-29 16:30
2004.05.23
Шмрокое использование вложенного запроса в IN





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