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

Вниз

Обновление DBGrid после Update   Найти похожие ветки 

 
loto   (2002-08-26 01:21) [0]

Как сделать, чтобы после обновления данных с помощью UpdateSQL сразу отобразились изменения в DBGrig без новой выборки с помощью Query. Почему в коде dbDatabase.StartTransaction генерит ошибку:

Capability not supported.
[MySQL][ODBC 3.51 Driver]Transactions are not enabled.

Как это - в MySQL не поддерживаются транзакции?!

Код:

procedure TfrmMain.btnUpdateClick(Sender: TObject);
var
s:string;
i:integer;
begin
try
s:="";
for i:=1 to length(edRun.Text)do
begin
if(i>2)and(edRun.Text[i-2]<>"\")then
s:=s+edRun.Text[i];
if(i>1)and(edRun.Text[i]="\")and(edRun.Text[i-2]<>"\")then
s:=s+edRun.Text[i];
end;
edRun.Text:=s;
// frmStart.dbDatabase.StartTransaction;
try
selUpdateSQL.SQL[ukModify].Clear;
selUpdateSQL.SQL[ukModify].Add("update menu");
selUpdateSQL.SQL[ukModify].Add("set ");
selUpdateSQL.SQL[ukModify].Add(" name=""+edName.Text+"",");
selUpdateSQL.SQL[ukModify].Add(" run=""+edRun.Text+"",");
selUpdateSQL.SQL[ukModify].Add(" runparam=""+edRunParam.Text+"",");
selUpdateSQL.SQL[ukModify].Add(" progkey=""+edProgKey.Text+""");
selUpdateSQL.SQL[ukModify].Add("where ");
selUpdateSQL.SQL[ukModify].Add(" id="+inttostr(selQuery["id"]));
selUpdateSQL.SQL[ukModify].SaveToFile("d:\upd.SQL");
selUpdateSQL.ExecSQL(ukModify);
selQuery.Close;
selQuery.Open;
// gridMenus.Refresh;
DataModified:=False;
StatusBar1.Panels[0].Text:="Данные обновлены";
// frmStart.dbDatabase.Commit;
except
// frmStart.dbDatabase.Rollback;
DataModified:=False;
StatusBar1.Panels[0].Text:="Ошибка при обновлении данных";
end;
finally
gridMenus.Enabled:=True;
panelEdit.Visible:=False;
Application.ProcessMessages;
end;
end;


 
ЮЮ   (2002-08-26 06:00) [1]

Твой код, честно говоря, не имеет никакого отношения к UpdateSQL, несмотря на название selUpdateSQL :-)

следует у selQuery установить UpdateObject, который соответственно настроить. Тогда изменения, вносимые в Grid в нём, естественно, и будут отражаться сразу, а изменения в БД будут осуществляться посредством UpdateSQL.


 
loto   (2002-08-26 16:34) [2]

sel - это группа компонентов, связанных общей задачей.
Я вношу изменения не в Grid, а с помощью SQL-запроса.
Например такой запрос:

selUpdateSQL.SQL[ukModify]:=
"update menu "+
"set "+
" name="Notepad", "+
" run="Notepad.exe", "+
" runparam="", "+
" progkey="" "+
"where "+
" id=1";


Этот запрос запичкал в selUpdateSQL.SQL[ukModify], затем выполнил selUpdateSQL.ExecSQL(ukModify).
Установлено на этапе разработки:
selQuery.UpdateObject=selUpdateSQL
selQuery.AutoUpdate=True


 
ЮЮ   (2002-08-27 03:06) [3]

>Я вношу изменения не в Grid, а с помощью SQL-запроса
Пусть и не через Grid, но изменения нада вносить через DataSet (selQuery.Edit; selQuery.FieldByName("..").asXXX:=...; selQuery.Post)), а реально они внесутся через selUpdateSQL без дополнительного кода в TfrmMain.btnUpdateClick(Sender: TObject);
и отобразятся в Гриде.




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

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

Наверх





Память: 0.45 MB
Время: 0.008 c
3-50600
Gl
2002-08-26 09:46
2002.09.16
Проблема с кодировкой в IBQuery


6-50900
the fate
2002-07-11 08:19
2002.09.16
Как с помощью делфи прослушать сокет?


14-50949
Oleg_Gashev
2002-08-21 19:38
2002.09.16
Что-то в магазине не видел. А сколько стоит?


1-50719
Olorin
2002-09-04 15:37
2002.09.16
Вот запарка мож кто заметит в чем проблема...


1-50670
AndbyOne
2002-09-04 11:53
2002.09.16
Быстрый поиск в Tree по значению TPointer





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