Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 18:39   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
Вопрос Замена строки в DBGride

Добрый вечер! Вопрос во вложении . Подскажите.
Изображения
Тип файла: jpg Безымянный.JPG (34.2 Кб, 159 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 03.04.2009, 18:53   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

Код:
update  'имя таблицы' set 'имя поля'= новое значение where('имя поля 1'='значение' and 'имя поля 2'=значение)
почитайте справку по sql
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 03.04.2009, 18:54   #3
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

поди туда - не знаю куда, возьми то - не знаю что
Вы ходь бы описали куда это всё записывается
вот для примера SQL
Код:
update <table_name>
  set <field_name1>=<value1>
  where <field_name2>=<value2>
в Вашем случае:
Код:
update <table_name>
  set ПРЕДМЕТ='ИСТОРИЯ'
  where ФИО='Иванов Иван Петрович'
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 04.04.2009, 09:19   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Прощу прощения за то, что не описал подробнее. Dark_Spirit, ваш код работает. Спасибо вам . Предмет меняется, но появляется ошибка "Error creating cursor handle". Как сделать, чтобы она не появлялась?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.04.2009, 10:04   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Делаю так:
Код:
var
 i:integer;
begin
 try
   Form8.Query1.Active:=False;
   Form8.Query1.SQL.Clear;
   Form8.Query1.SQL.Add(Form8.Memo1.Text);
   Form8.Query1.Active:=True;
 except
  i:=0;
 end;
И запрос такой:
Код:
update tab.db
  set ПРЕДМЕТ='русский язык'        
  where ФИО='Иванов Иван Петрович'
Вроде как изменяется, но результат замены виден только при следующем запуске программы. Так не пойдет. Ошибки вроде нет, когда сделал через try...except, но изменения видны только при следующем запуске программы. А как сделать, чтобы сразу менялось?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.04.2009, 11:18   #6
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Вместо Form8.Query1.Active:=True;
Нужно написать Form8.Query1.ExecSQL.
Form8.Query1.Active:=True; - используется только когда идет условие выбора "SELECT"
S@fer вне форума Ответить с цитированием
Старый 04.04.2009, 11:39   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

S@fer, заменил так как вы сказали, но эффект все равно тот же. . Предмет меняется, но изменение видно только при следующем запуске программы. Пробовал свойство у DBGrid-a Refresh, не помогает. Может еще какие-нибудь идеи есть как сделать, чтобы сразу показывалось изменение?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 04.04.2009, 11:42   #8
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

а дбгрид с каким соурсом связан?
если с тем же, что и обновление, то после
Цитата:
Form8.Query1.Active:=False;
Form8.Query1.SQL.Clear;
Form8.Query1.SQL.Add(Form8.Memo1.Te xt);
Form8.Query1.ExecSQL;
нужно дописать следующее
Код:
 Form8.Query1.Active:=False;
   Form8.Query1.SQL.Clear;
   Form8.Query1.SQL.Add('SELECT * FROM tab.db');
   Form8.Query1.Active:=True;
S@fer вне форума Ответить с цитированием
Старый 04.04.2009, 11:48   #9
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Если же в другом, то там делайте обновление таблицы (Не ДБгрида, а Table или Query), взависимости от того с помощью чего принимаются данные
к примеру
Код:
Form8.Table.Active:=False;
Form8.Table.Active:=True;
S@fer вне форума Ответить с цитированием
Старый 04.04.2009, 17:38   #10
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

S@fer, спасибо! Выручил. Я разобрался)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прокрутка мышью в DBGride opel.omega Общие вопросы Delphi 4 02.02.2009 09:12
Текстовые файлы, преобразование строки(замена слов)) lusuj Помощь студентам 1 01.12.2008 16:58
Автоподгонка ячейки в DBGride artemavd БД в Delphi 5 19.10.2008 12:56
Замена элементов строки MStorm Помощь студентам 10 14.03.2008 16:09
Замена одного элемента строки другим kkkggg PHP 1 18.10.2007 23:09