Главная страница
    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.458 c
1-50742
maxim2
2002-09-05 06:10
2002.09.16
Запретить изменение размеров формы до определенных.


1-50795
Adil Aliev
2002-08-31 07:52
2002.09.16
Decompilator


1-50823
NAU
2002-09-04 05:48
2002.09.16
Как определить кем создан файл?


1-50664
R_F$29{n}xp
2002-09-04 13:51
2002.09.16
Мастера подскажите как можно сохранить компонент TTree View?


3-50655
firsor1
2002-08-27 12:10
2002.09.16
Чтобы использовать ShellExecute что должно быть в uses..





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