Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА!!! Как заполнить таблицу? / 12 сообщений из 12, страница 1 из 1
03.07.2003, 16:00
    #32198668
Desteft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Всем привет! Помогите пожалуйста, есть столбец в TDBGrid, значения в котором полученны с помощью SQL запроса, нужно чтобы в столбце вместо значения 1 отображалось значение "Да", а вместо значения 0 отображалось значение "Нет". Заранее спасибо.
...
Рейтинг: 0 / 0
03.07.2003, 16:14
    #32198699
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Можно по разному ,
можно сделать с помошью LookUp поля а можно
на событие OnDrawGridCell (точно непомню)
выводить сооветсвующий текст ...
...
Рейтинг: 0 / 0
03.07.2003, 16:28
    #32198735
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Дополню. Можно непосредственно в запросе преобразовать, можно вычисляемое поле создать, можно обработчик поля OnGetText заюзать. Выбирай. А лучше EhLib юзать и галку поставить.
...
Рейтинг: 0 / 0
03.07.2003, 16:34
    #32198751
Hammer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Есть несколько вариантов:
1. На форме уже существует ClientDataSet и его поля совпадают с TAdoQuery.
1.1 procedure TForm1.FormCreate( ... )
begin
...
ClientDataSet.CreateDataSet;
...
end;
1.2 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

2. На форме уже существует ClientDataSet и у него нет полей, а в TAdoQuaery есть.
2.1 procedure TForm1.FormCreate( ... )
begin
...
ClientDataSet.CreateDataSet;
ClientDataSet.Data := Null;
ClientDataSet.FieldDefs.BeginUpdate;
ClientDataSet.FieldDefs := ADOQuery1.FieldDefs
ClientDataSet.FieldDefs.EndUpdate;
...
end;
2.2 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

3. На форме нет ClientDataSet.
3.1
implementation

{$R *.DFM}
var
CDS: TClientDataSet;

3.2 procedure TForm1.FormCreate( ... )
begin
...
CDS := TClientDataSet.Create( nil );
ClientDataSet.Data := Null;
ClientDataSet.FieldDefs.BeginUpdate;
ClientDataSet.FieldDefs := ADOQuery1.FieldDefs
ClientDataSet.FieldDefs.EndUpdate;
...
end;
3.3 procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
ClientDataSet.EmptyDataSet;
ClientDataSet.AppendRecord( [ ... ] );
end;

3.4 procedure TForm1.FormClose( ... )
begin
CDS.Free;
end;
...
Рейтинг: 0 / 0
03.07.2003, 16:37
    #32198762
Desteft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Не подскажишь как с помощью запроса сделать, OnGetText - событие какой компоненты и что такое EhLib. Спасибо.
...
Рейтинг: 0 / 0
03.07.2003, 16:47
    #32198779
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Не подскажишь как с помощью запроса сделать,

это для сиквела

Код: plaintext
1.
2.
3.
SELECT
...
colYesNo = CASE WHEN colSomeField =  0  THEN 'Нет' ESLE 'Да' END,
...


OnGetText - событие какой компоненты

TField

и что такое EhLib.

http://www.farpost.com/personal/dmitryb/
...
Рейтинг: 0 / 0
03.07.2003, 17:00
    #32198802
Desteft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Что такое colYesNo и colSomeField. Cпасибо.
...
Рейтинг: 0 / 0
03.07.2003, 17:10
    #32198821
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Что такое colYesNo и colSomeField. Cпасибо.

8-)

colYesNo это алиас для выражения, вычисляемого в CASE. А colSomeField - это то поле, где храниться 0\1. Тыж не написал как поле называется, вот я его так и назвал.
...
Рейтинг: 0 / 0
04.07.2003, 11:23
    #32199392
Desteft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Select не работает, ругается на = перед CASE.
...
Рейтинг: 0 / 0
04.07.2003, 11:50
    #32199456
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
С какой субд работаешь?
...
Рейтинг: 0 / 0
04.07.2003, 11:54
    #32199467
Desteft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
С Interbase 7
...
Рейтинг: 0 / 0
04.07.2003, 13:38
    #32199651
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПРОБЛЕМА!!! Как заполнить таблицу?
Сорри, синтаксиса Interbase не знаю. Поддерживает ли он CASE? Может так надо:

Код: plaintext
1.
2.
3.
SELECT
...
  CASE WHEN colSomeField =  0  THEN 'Нет' ESLE 'Да' END AS colYesNo,
...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ПРОБЛЕМА!!! Как заполнить таблицу? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]