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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2008, 20:29   #1
Dmitriy84S
 
Регистрация: 18.08.2008
Сообщений: 3
По умолчанию словари для таблицы из массива

Задача:
в mysql таблице хранятся данные ввиде индексов (только цифры)
все словари находятся в массиве

Код:
a[1]:='Куплю';
a[2]:='Продам';
a[3]:='Обменяю';
a[4]:='Сдам';
Как сделать так чтобы в ДБГриде вместо цифр появились значения из этого массива.
Dmitriy84S вне форума Ответить с цитированием
Старый 18.08.2008, 22:47   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

самый простой вариант - через вычисляемой поле.
Добавляешь в датасет вычисляемое поле (например, calcTypeOper, потом на
OnCalcFields вешаешь процедуру примерно такую:

Код:
DataSet.FieldByName('calcTypeOper').asString :=
  A[DataSet.FieldByName('MyType').AsInteger];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.08.2008, 09:15   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
в mysql таблице хранятся данные ввиде индексов (только цифры)
все словари находятся в массиве
Ух.... Накручено, а чего все не хранить в БД?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2008, 10:31   #4
Dmitriy84S
 
Регистрация: 18.08.2008
Сообщений: 3
По умолчанию

Код:
procedure TForm2.CRDBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
    A:array[1..4] of string[7];//Вид операций
begin
  if Column.Field.FieldName = 'operation_type' then
  begin
          a[1]:='Куплю';
          a[2]:='Продам';
          a[3]:='Обменяю';
          a[4]:='Сдам';
          myquery1.Edit; 
     myquery1.Fields.FieldByName('operation').AsString:=a[Column.Field.AsInteger]
    end;
    end;
этот код работает, но только из грида...
мне нужно чтобы эта процедура работала не из грида..чтоб не зависила от него,и чтоб можно было распечатать отчет через фаст репорт..а то с этой процедурой при формировании отчета поле operation пустое получается, есть вариант чтоб в таблице при запуске автоматически создавалось поле и сохранялись туда данные из грида,тогда печать работает, а при выходе удалялось....с настоящим полем процедура работает на отлично...

еще одна процедура по этой теме

Код:
var
    A:array[1..4] of string[7];//Вид операций
    b:integer;
begin
          a[1]:='Куплю';
          a[2]:='Продам';
          a[3]:='Обменяю';
          a[4]:='Сдам';
          myquery1.Edit;
          b:=strtoint(myquery1.Fields.FieldByName('operation_type').AsString);
          myquery1.Fields.FieldByName('operation').Value:=a[b];
  end;
но при запуске идет зацикливание...я хз как ее оптимизировать чтоб работало...уже все варианты перепробовал..млин....кто-нить знает решение мое траблы...очень нужно
заранее спасибо всем прогерам за помощь

Последний раз редактировалось Dmitriy84S; 19.08.2008 в 10:36.
Dmitriy84S вне форума Ответить с цитированием
Старый 19.08.2008, 10:49   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мне кажется тебе лучше всетки пересмотреть этот подход к решению, и запихнуть все данные в БД...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2008, 11:04   #6
Dmitriy84S
 
Регистрация: 18.08.2008
Сообщений: 3
По умолчанию

все нормально работает..просто лишний код сунул myquery1.edit; когда убрал все заработало...респект и уважуха всем
Dmitriy84S вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
Сортировка массива С/С++ Dagget Помощь студентам 1 16.07.2008 12:18
Сортировка массива...? Roberto Помощь студентам 2 11.04.2008 13:32
Сортировка массива RIO Помощь студентам 1 05.04.2008 17:39
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44