Форум по программированию Delphi Sources

 



Вернуться   Форум по программированию Delphi Sources > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 07.03.2011, 00:24
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

ты бы исходники проекта приложил (с базой), проще было бы
Ответить с цитированием
  #17  
Старый 07.03.2011, 01:17
jekahm jekahm вне форума
Новичок
 
Регистрация: 01.06.2009
Сообщения: 54
Репутация: 27
По умолчанию

Вот сам проект (в тестовом варианте)
http://depositfiles.com/files/q7j9sr00o
Ответить с цитированием
  #18  
Старый 07.03.2011, 01:35
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

блин, не могу импортировать, у тя MSSQL 2000 чтоли?
импортируй используемые таблицы в SQL-text

добавление: не, не надо, чота я протупил, щас сам базу создам с таблицей
Ответить с цитированием
  #19  
Старый 07.03.2011, 01:57
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

тебе нужно событие ставить не в AfterScroll что бы появлялась картинка сразу после добавления, а в AfterPost (AfterScroll срабатывает когда перемещаешься по набору данных, а не после добавления данных). НО и событие AfterScroll оставить тоже (создай процедуру и воткни её в AfterScroll и AfterPost, что бы не плодить код лишний)

Добавление: и добавь ADOQuery1.Post; в конец процедуры, которая сохраняет данные в IMAGE поле (тогда картинка будет появляется сразу после нажатия кнопки добавления)

Последний раз редактировалось Assistant, 07.03.2011 в 02:05.
Ответить с цитированием
  #20  
Старый 07.03.2011, 02:36
jekahm jekahm вне форума
Новичок
 
Регистрация: 01.06.2009
Сообщения: 54
Репутация: 27
По умолчанию

Цитата:
Сообщение от Assistant
блин, не могу импортировать, у тя MSSQL 2000 чтоли?
импортируй используемые таблицы в SQL-text

добавление: не, не надо, чота я протупил, щас сам базу создам с таблицей
Та нет...2008-ой MS SQL.
А вообще там и импортировать нечего...обычная тестовая база StudyDB, которая состоит из одной таблицы temptable (а таблица в свою очередь состоит из трёх полей: id, name и photo)
Ответить с цитированием
  #21  
Старый 07.03.2011, 02:44
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

база не нужна уже, я выше написал что нужно переделать (доделать)
Ответить с цитированием
  #22  
Старый 07.03.2011, 07:16
Kapitoshka438 Kapitoshka438 вне форума
Начинающий
 
Регистрация: 09.11.2009
Сообщения: 145
Репутация: 238
По умолчанию

Цитата:
Сообщение от jekahm
...
Также попытался вывести изображение (но уже в другой Image) с помощью
Код:
Image2.Picture.Graphic.LoadFromStream(Stream);
из потока, который использовал при добавлении изображения, но все равно ничего не происходит!
Такое не пройдет.

Цитата:
procedure TForm1.Button3Click(Sender: TObject);
var MS : TFileStream;
Stream: TMemoryStream;
begin
DataSource1.DataSet.Open;
DataSource1.DataSet.Insert;
Stream := TMemoryStream.Create;
Image1.Picture.Graphic.SaveToStream(Stream);
TBlobField(ADOQuery1.FieldByName('photo')).LoadFro mStream(Stream);
Stream.Free;
end;
А где Post?

Последний раз редактировалось Kapitoshka438, 07.03.2011 в 07:38.
Ответить с цитированием
  #23  
Старый 07.03.2011, 15:42
jekahm jekahm вне форума
Новичок
 
Регистрация: 01.06.2009
Сообщения: 54
Репутация: 27
По умолчанию

Всем большое спасибо за помощь! Вроде бы во всём разобрался!

Но есть еще один вопрос (немного не по теме)! Я сделал поиск по Гриду (в виде фильтра). И один из элементов, который я использую для этого - ComboBox (для выбора поля, по которому будет происходить фильтрация).
Для заполнения комбобокса пишу такой код
Код:
for i:=0 to ADOQuery1.FieldCount - 1 do
Combobox1.Items.Add(ADOQuery1.Fields[i].fieldname);
ComboBox1.text := ADOQuery1.Fields[0].fieldname;
Но как мне сделать, чтобы в комбобоксе были имена полей понятные для обычного человека...например на русском языке (а не такие имена, которые я присваивал полям еще при создании таблицы в MS SQL)?
Заранее благодарен!

Последний раз редактировалось jekahm, 07.03.2011 в 23:57.
Ответить с цитированием
  #24  
Старый 10.03.2011, 20:34
jekahm jekahm вне форума
Новичок
 
Регистрация: 01.06.2009
Сообщения: 54
Репутация: 27
По умолчанию

Народ, ну кто-нибудь, отзовитесь!
Ответить с цитированием
  #25  
Старый 10.03.2011, 23:44
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

самый просто способ, при заполнении грида, сопостовлять "поле -> нормальное имя" через case и при взятии значения из combobox делать обратное сопостовление "нормальное имя->поле". типо такова:
Код:
var
  fields, names: TStringList;

function TForm1.GetNameFromField(field: string);
begin
  Result := names[fields.IndexOf(field)];
end;

function TForm1.GetFieldFromName(name: string);
begin
  Result := fields[names.IndexOf(name)];
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  fields := TStringList.Create;
  names := TStringList.Create;

  fields.Add('fio');
  names.Add('Фамилия');

  fields.Add('name');
  names.Add('Название');

  fields.Add('value');
  names.Add('Значение');

  for i:=0 to ADOQuery1.FieldCount - 1 do
    Combobox1.Items.Add(GetNameFromField(ADOQuery1.Fields[i].fieldname));
end;

procedure TForm1.FilterClick(Sender: TObject);
var
  fieldname: string;
begin
  fieldname := GetFieldFromName(ComboBox1.Text);
  // тут применение фильтра по полю fieldname
end;

можно сделать и на массива (но так для понимая проще, как я написал).

P.S.: за ошибки не ручаюсь, писалось "на лету" без Delphi, но смысел должен быть понятен

Последний раз редактировалось Assistant, 10.03.2011 в 23:46.
Ответить с цитированием
Ответ



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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources", 2004-2019

ВКонтакте   Facebook   Twitter