IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> База вопросов
sheka
сообщение 6.02.2010 20:05
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Мне нужно сделать тест. Базу вопросов хочу хранить как file of record. Проблема заключается в том, что в тесте должны быть картинки. Хотел сделать как поле записи. Но вот проблема: в файл не записывается ни поле :TImage ни :TPicture ни даже :TBitmap.
Как это можно осуществить?

Сообщение отредактировано: sheka - 6.02.2010 20:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 16.02.2010 0:15
Сообщение #2


Гость






Цитата
если мне для работы ДБГрид не нужен(таблица на форме)
Хм... Ну, обойдись без него, просто не клади его на форму. Никто не запрещает связывать тот же TDBImage напрямую с TDataSource. Грид - он только для отображения информации.

Цитата
Вот нашел как программно сжать бд.
Ух ты smile.gif "А мужики-то не знают" (С), и по-старинке пользуются:
Uses ComObj; // Добавить если еще нет этого модуля

// ...

function CompactAndRepair(DB: string) : boolean;
var
v: OLEvariant;
begin { CompactAndRepair }
Result := True;
try
v := CreateOLEObject('JRO.JetEngine');
try
//try
v.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB,
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB +
'x;Jet OLEDB:Engine type=5');
DeleteFile(DB);
RenameFile(DB + 'x', DB)
finally
v := Unassigned
end; { try }

except
Result := False
end; { try }
end; { CompactAndRepair }

// Вызывать - так:
procedure TForm1.btnCompactDBClick(Sender: TObject);
const sDBPath = 'F:\Programs\Delphi\myProject\base.mdb';
begin
ADOTable1.Close; // Закрываем все открытые таблицы и саму базу...
ADOConnection1.Close;

if CompactAndRepair(sDBPath) then
ShowMessage('Success')
else
ShowMessage('Fault');

ADOConnection1.Open; //Открываем в обратном порядке, сначала базу, потом - таблицы
ADOTable1.Open;
end;
, только для этого надо не устанавливать в Инспекторе Объектов ADOConnection.Connected в True, а делать это при инициализации формы, иначе база будет открыта в монопольном режиме, и сжатие не будет произведено. То же самое касается и ADOTable - они в Design-Time должны быть неактивны, активизировать их надо будет при запуске:
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Open;
ADOTable1.Open;

// Ну, и что там тебе еще надо было...
end;
 К началу страницы 
+ Ответить 

Сообщений в этой теме
sheka   База вопросов   6.02.2010 20:05
volvo   По разному можно. Например, выбросить из головы же...   6.02.2010 20:18
sheka   Мне это надо в Дельфях... Можете набросать пример...   6.02.2010 22:43
volvo   Чего это? У тебя ж файл, который типизированный, н...   6.02.2010 23:38
sheka   Я с базами данных вообще никогда не работал. Слыш...   7.02.2010 0:19
volvo   :blink: А на что ты рассчитывал попасть? На готов...   7.02.2010 2:58
Archon   sheka, база данных - это правильное решение, с ним...   7.02.2010 6:50
sheka   Ну как минимум на пример :) Archon, именно в так...   7.02.2010 14:03
Client   а можно вопрос? :) как организовать фильтрацию дан...   7.02.2010 20:11
volvo   Фильтруй, кто тебе запрещает? procedure TForm1.Bu...   7.02.2010 21:04
Client   спасибо   7.02.2010 21:15
Client   что-то сразу не заметил QuotedStr(s);Что она делае...   9.02.2010 13:07
VolvoGuest   Ничего особенного. Просто преобразует входную стро...   9.02.2010 13:20
Client   хитро... раньше вставлял апостроф с помощью chr(),...   9.02.2010 13:30
sheka   А как узнать индекс выделенной записи в DBGrid? Е...   10.02.2010 0:10
volvo   А можно глупый вопрос? "А зачем?" Нет т...   10.02.2010 0:45
sheka   Например, удалить выделенную запись из базы. Так...   10.02.2010 1:18
volvo   А для этого ни разу не надо знать номер строки... ...   10.02.2010 2:17
sheka   Опять столкнулся с проблемой. Точнее с -ами))) У ...   10.02.2010 20:33
volvo   :blink: Поле типа Memo (описанное как Memo в Acce...   10.02.2010 20:58
sheka   Я текстовым пользуюсь), чтобы красиво в таблице в...   11.02.2010 1:36
volvo   У меня в Д2009 присутствуют свойства Proportional ...   11.02.2010 2:09
sheka   Надо бы вопросы выбирать из БД рандомно. Как это о...   15.02.2010 20:48
Client   ADOTable1.RecNo и ADOTable1.RecordCount - это теку...   15.02.2010 20:54
sheka   это текущая запись и количество записей. Мне надо...   15.02.2010 21:00
volvo   Прекрасно работает и на Win7 тоже. procedure TFo...   15.02.2010 22:21
sheka   http://www.cyberguru.ru/delphi-sources/db-...olzuy...   15.02.2010 22:37
volvo   Хм... Ну, обойдись без него, просто не клади его н...   16.02.2010 0:15
sheka   Почему при перемещении по DataSource информация в ...   4.03.2010 21:22
Client   проект не компилится, если закомментировать то не ...   4.03.2010 21:39
sheka   проект не компилится, если закомментировать то не...   4.03.2010 21:45
Client   Путь к базе поменял в AdoConnection. procedure Nex...   4.03.2010 22:03
sheka   Забыл видимо))), но проблема не в этом. Комп гл...   4.03.2010 22:09
Client   запустилось... :) хм, если добавить в твой проект ...   4.03.2010 22:21
sheka   запустилось... :) хм, если добавить в твой проект...   4.03.2010 22:22
Client   создал заново проект, добавил твою базу, кинул на ...   4.03.2010 22:30
sheka   Я думал, что проект мог быть "битым". Та...   4.03.2010 23:01
sheka   volvo, Client, большое спасибо! Программу напи...   15.03.2010 22:14


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 0:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"