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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2009, 15:22   #1
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию Как изменять БД через DBGridEh

Мне нужно изменять записи через DBGridEh, тоесть я редактирую ячейку в DBGridEh , и изменения сохраняются в Базе

Если делать так , то всё нормально работает

IBDatabase1 - IBDataSet1 - DataSource1 - DBGridEh1

Я в IBDataSet1 прописываю в SelectSQL основной запрос для чтения и захожу DatasetEdit - и выбераю ключевое поле и Update поле и нажимая Generate SQL и у меня сгенерировались все запросы по удаления , обновлению и т.д полей

А мне надо чтоб работала связка без IBDataSet1, вот так (мне надо сортировка по столбцам и фильтры)

IBDatabase1 - IBQuery1 - DataSetDriverEh1 - MemTableEh1 - DataSource1 - DBGridEh1

Данные показывает , даёт редактировать , но не сохраняет , нашёл вроде надо ещё SQLDataDriverEh1 ,но не знаю как его подключить и что писать в запросах , пробывал как с IBDataSet1 писать запросы для обновления , удаления но чего не выходит

Можете подсказать с примером и как подключить , например есть таблица и у неё три поля , первое ключевое, два других можно редактировать

Если можно по подробней , так как я в этом не сильно разбираюсь

Зарание спасибо

Последний раз редактировалось lexaltd; 06.05.2009 в 12:31.
lexaltd вне форума Ответить с цитированием
Старый 19.11.2010, 13:27   #2
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Похожая проблема, ADOConnection1 + ADOQuery1 + SQLDataDriverEh1 + DataSource1 + MemTableEh1
Все отображает, дает редактировать таблицы, дает создавать/удалять таблицы через SQL запросы, но при редактировании полей не сохраняются данные в базу access.
Если пользоваться использовать ADOConnection1 + ADOQuery1 + DataSource1, то все нормально.
Как реализовать сохранение с использованием MemTableEh ?

Просто если идти в обход MemTableEh, то не получается выставлять авто-высоту строк, что не есть хорошо

Проблема решена гууглением

Код:
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var
ARect:TRect;
AText:string;
RowNumber,NewHeight:integer;
wTxt:integer;
wRect:integer;
nLine:integer;
begin
AText:=Column.Field.AsString;
wTxt :=DBGridEh1.Canvas.TextWidth(AText);
wRect:=(Rect.Right-Rect.Left)-2;
nLine:=Trunc(wTxt/wRect)+0;
if nLine>0 then
begin
RowNumber:=DBGridEh1.DataSource.DataSet.RecNo;
NewHeight:=nLine*TCrackCustomGridEh(Sender).DefaultRowHeight+7;
if NewHeight>TCrackCustomGridEh(Sender).RowHeights[RowNumber] then
begin
TCrackCustomGridEh(Sender).RowHeights[RowNumber]:= NewHeight;
end;
ARect:=Rect;
ARect.Bottom:=ARect.Top+TCrackCustomGridEh(Sender).RowHeights[RowNumber];
WriteTextEH(DBGridEh1.Canvas,ARect,True,1,1,AText,taLeftJustify,tlTop,True,False,0,0,False);
end;
end;
Спасибо автору кода, ник которого я не помню!

Последний раз редактировалось mihali4; 19.11.2010 в 17:08.
ZBEP вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменять динамически созданные Label МаксMorfey Компоненты Delphi 2 03.01.2009 10:23
Как создать выпадающий список в ячейке DBGridEh? Garacio2 БД в Delphi 4 25.10.2008 14:04
Как изменять частоту железа?? UnD)eaD)Snake Общие вопросы Delphi 6 30.07.2007 15:06
Как изменять размеры StringGrid Мышкой Inbox Компоненты Delphi 4 30.06.2007 14:34
как изменять цвет ячейки в зависимости от условий ? Витёк Microsoft Office Excel 2 19.06.2007 13:10