Вопрос - ОтветЗадал вопрос - получил ответ...
#24
Отправлено 04.08.2003, 15:59:05
TDBImage вполне подойдёт. Тип поля желательно что бы был Image или Text, ну или что там. Приведя его кУважаемые специалисты по Дельфи...
Подскажите плиз, как добавлять и апдейтить картинку в таблице БД. Чейто помоему - это довольно заморочено все... Не могу найти...
TBlobField(MyDataSet.FieldByName('Imager')).LoadFromStream и SaveToStream доступны, делай что хочешь.
#26
Отправлено 04.08.2003, 16:01:52
Ещё как поодерживает! И забудь про такие страшные слова: OlePropertySet, OlePropertyGet, OleProcedure, OleFunctionПоддерживает ли Дельфи OLE Automation? т.е. возможно ли создать объект CreateOleObject и использовать вызовы OlePropertySet, OlePropertyGet, OleProcedure, OleFunction?
Три пути:
Самый простой путь: с сайта www.sourceforge.net качаешь отличную либу OfficePartner
Простой путь: Юзаешь, то что уже намутил Borland закладка Servers.
Правильный путь: Импортируешь библиотеку типов из нужной тебе офисной прилады и делаешь что душе угодно... Project -> Import Type Library.
#27
Отправлено 04.08.2003, 17:10:21
TDBImage вполне подойдёт. Тип поля желательно что бы был Image или Text, ну или что там. Приведя его кУважаемые специалисты по Дельфи...
Подскажите плиз, как добавлять и апдейтить картинку в таблице БД. Чейто помоему - это довольно заморочено все... Не могу найти...
TBlobField(MyDataSet.FieldByName('Imager')).LoadFromStream и SaveToStream доступны, делай что хочешь.
Большое спасибо - сделала вот так...
По моему довольно коряво - но не знаю как проще.
Дело в том, что для разных форматов (bmp, jpg) отображение картинки работает по разному...
Поэтому при записи картинки в БД я параллельно в еще одном поле записываю расширение... Как от этого избавиться не знаю...
procedure TForm1.BitBtn1Click(Sender: TObject);
var
MS: TMemoryStream;
MyPic: TGraphic;
begin
MS := TMemoryStream.Create ;
if Table1.FieldByName('tttcomment').Text = 'bmp'
then
MyPic := TBitmap.Create ;
if Table1.FieldByName('tttcomment').Text = 'jpg'
then
MyPic := TJpegImage.Create ;
try
TGraphicField(Table1.FieldByName('tttimage')).SaveToStream(MS);
MS.Seek(0, 0);
MyPic.LoadFromStream(MS);
Image2.Picture.Assign(MyPic);
finally
MyPic.Free;
MS.Free;
end;
end;
#28
Отправлено 04.08.2003, 17:17:57
Ещё как поодерживает! И забудь про такие страшные слова: OlePropertySet, OlePropertyGet, OleProcedure, OleFunctionПоддерживает ли Дельфи OLE Automation? т.е. возможно ли создать объект CreateOleObject и использовать вызовы OlePropertySet, OlePropertyGet, OleProcedure, OleFunction?
Три пути:
Самый простой путь: с сайта www.sourceforge.net качаешь отличную либу OfficePartner
Простой путь: Юзаешь, то что уже намутил Borland закладка Servers.
Правильный путь: Импортируешь библиотеку типов из нужной тебе офисной прилады и делаешь что душе угодно... Project -> Import Type Library.
Спасибо... А почему нужно забыть про те страшные слова?
#30
Отправлено 05.08.2003, 08:49:15
А просто TDBImage не подошел? Он умеет разберать по форматам! Насчёт записи в поле расширения, в этом ничего такого нет, если охото совсем круто, завтра дам кусочек кода он умеет определять тип графического файла(hard-coded). Типы все которые понимает IE собственно - это его функция и есть.Большое спасибо - сделала вот так...
По моему довольно коряво - но не знаю как проще.
Дело в том, что для разных форматов (bmp, jpg) отображение картинки работает по разному...
Поэтому при записи картинки в БД я параллельно в еще одном поле записываю расширение... Как от этого избавиться не знаю...
#31
Отправлено 05.08.2003, 12:29:13
А просто TDBImage не подошел? Он умеет разберать по форматам! Насчёт записи в поле расширения, в этом ничего такого нет, если охото совсем круто, завтра дам кусочек кода он умеет определять тип графического файла(hard-coded). Типы все которые понимает IE собственно - это его функция и есть.Большое спасибо - сделала вот так...
По моему довольно коряво - но не знаю как проще.
Дело в том, что для разных форматов (bmp, jpg) отображение картинки работает по разному...
Поэтому при записи картинки в БД я параллельно в еще одном поле записываю расширение... Как от этого избавиться не знаю...
Неа TDBImage не подошел... он JPE-ги из базы почемуто вообще показывать не умеет...
а кусочек кода - было бы здорово
#32
Отправлено 05.08.2003, 13:09:32
Неа TDBImage не подошел... он JPE-ги из базы почемуто вообще показывать не умеет...
а кусочек кода - было бы здорово
В общем идёшь сюда: Graphics EX качаешь либу. Когда распакуешь обязательно загляни в GraphicConfiguration.inc !!! Она обеспечит тебе поддержку в Delphi кучи графических форматов.
Дальше будет что то типа:
procedure TForm1.BitBtn4Click(Sender: TObject);
var
GIFGraphic: TGIFGraphic;
begin
GIFGraphic := TGIFGraphic.Create;
try
GIFGraphic.LoadFromFile('C:\PCX\Tests\zdlogo[1].gif');
Image1.Picture.Bitmap := GIFGraphic;
finally
GIFGraphic.Free;
end;
end;
Все объекты в Graphics EX потомки TBitmap, что и требовалось доказать Расширение всё равно в БД лучше хранить, что б не маяться с определением типа, он хоть и работает, но не для всех форматов. К примеру Kodak Photo-CD images (*.pcd) IEешная определялка не выявит
ЗЫ
Готовь пиво
#33
Отправлено 05.08.2003, 14:34:06
Неа TDBImage не подошел... он JPE-ги из базы почемуто вообще показывать не умеет...
а кусочек кода - было бы здорово
В общем идёшь сюда: Graphics EX качаешь либу. Когда распакуешь обязательно загляни в GraphicConfiguration.inc !!! Она обеспечит тебе поддержку в Delphi кучи графических форматов.
Дальше будет что то типа:
procedure TForm1.BitBtn4Click(Sender: TObject);
var
GIFGraphic: TGIFGraphic;
begin
GIFGraphic := TGIFGraphic.Create;
try
GIFGraphic.LoadFromFile('C:\PCX\Tests\zdlogo[1].gif');
Image1.Picture.Bitmap := GIFGraphic;
finally
GIFGraphic.Free;
end;
end;
Все объекты в Graphics EX потомки TBitmap, что и требовалось доказать Расширение всё равно в БД лучше хранить, что б не маяться с определением типа, он хоть и работает, но не для всех форматов. К примеру Kodak Photo-CD images (*.pcd) IEешная определялка не выявит
ЗЫ
Готовь пиво
Биг сенкс... Поразбираюсь на досуге .
#34
Отправлено 12.08.2003, 17:10:25
(а может она и не решается вовсе)...
Есть результат, возвращаемый хранимой процедурой, примерно следующей структуры:
? F1 F2
-- -- --
1 aaa 0
2 aaa 1
3 aaa 1
4 aaa 0
1 bbb 0
2 bbb 1
3 bbb 1
4 bbb 1
1 ccc 1
2 ccc 0
3 ccc 1
4 ccc 1
...
причем по желанию можно отдельно получать результат для aaa, bbb, ссс
Задача: надо этот результат какнибудь по уму отобразить... желательно вот так:
? aaa bbb ccc ...
1 1 0 1
2 1 1 0
3 1 1 1
4 0 1 1
ума не приложу, какие компоненты для этого использовать... хотела грид - с lookup полями - вызывающими одну и туже процедуру с разными входными параметрами - не получается ...
Помогите, люди добрые...
#35
Отправлено 13.08.2003, 08:06:24
Можно написать расширенную хранимую процедуру, в ней проще решит такого рода проблемы.
#36
Отправлено 13.08.2003, 08:31:57
А много у тебя записей выходит? Если много, то может появится проблема с ограничением на количество полей Если их немного, я бы хранимую процедуру налобал которая это будет делать, только она будет медленная достаточно, так как будет в тупую перекладывать
Можно написать расширенную хранимую процедуру, в ней проще решит такого рода проблемы.
Записей относительно много - около 3000 (по 200 на 15)... Но самое обидное - что их может быть переменное количество в результате процедуры, и соотвественно переменное количество строк и полей в гриде...
Процедуру конечно написать можно - это как раз не проблема... Только вот как?.. Ведь таблица получается какая то трехмерная...
#39
Отправлено 19.08.2003, 14:04:47
как в dbgrid по имени колонки получить ее индекс...?
Неужели только так?:
For j:=1 to DBGrid1.Columns.Count do
begin
if DBGrid1.Fields[j].FieldName = 'dbid'
then break;
end;
Сообщение отредактировал Tancha: 19.08.2003, 14:10:30
#40
Отправлено 20.08.2003, 15:04:33
Есть прога, которая перекодирует и определенным образом обрабатывает некий файл данных. Прога писана в двух вариантах, один на Билдере, другой - в Борланде С++ 5. Алгоритмы одинаковые.
По идее в Борланде должно работать быстрее, так-как терминальный режим т.е. без всякой графики. Однако все наоборот.... Билдерный проект пашет в разы быстрее
Вопрос: может есть идеи - почему? Спрашивал у разного уровня программеров, никто не может дать точного ответа...
Количество пользователей, читающих эту тему: 2
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0
-
Bing (1)