Как сохранить массив типа float в БД access? И как прочитать обратно?

Delphi access array float

Пишу прогу в дельфях. Сохранял в файлы file of real, но по заданию нужно сохранять в БД.

Примечание:
Кажется я неправильно выразился...
мне нужна таблица следующего вида:
____________________________________________________________________
ключ | Фамилия | Имя | Отчество | Поле, где хранится массив с реал-числами |
_____|_________|_____|_________|______________________________________|

Прога - биометрическая система распознавания по клавиатурному почерку.... ну не суть важно...

Пока ничего лучше не придумал чем сделать Поле типа Memo (название поля 'Эталон'). И использовать следующим образом:
Form2.tbl1.Append;
Form2.tbl1.FieldByName('Эталон').AsString:='';
for i:=0 to N do Form2.tbl1.FieldByName('Эталон').AsString:=Form2.tbl1.FieldByName('Эталон').AsString+FloatToStr(Vremja[i])+'@';
Form2.tbl1.Post;

При считывании строка хранящаяся в поле нарезается через "собачку" (сделал специальную функцию) и конвертируется обратно в флоат.
По-моему подобный способ - слишком извращенный. Нет ли других? Поинтересней? И "правильней"?
Ответы:
1. создаешь бд (имя например db.mdb)
2. создаешь таблицу, тип поля числовой, размер поля - Одинарное с плавающей точкой
3. в делфи на форму кидаешь ADOConnection, ADOQuery
4. в FormCreate кидаешь:
sdr:='';
sdr:=sdr+'Provider=Microsoft.Jet.OLEDB.4.0;';
sdr:=sdr+'Password="";';
sdr:=sdr+'User ID=Admin;';
sdr:=sdr+'Data Source='+ ExtractFileDir(Application.ExeName)+'\salon.mdb;';
sdr:=sdr+'Mode=ReadWrite;Extended Properties="";';
sdr:=sdr+'Jet OLEDB:System database="";';
sdr:=sdr+'Jet OLEDB:Registry Path="";';
sdr:=sdr+'Jet OLEDB:Database Password="";';
sdr:=sdr+'Jet OLEDB:Engine Type=5;';
sdr:=sdr+'Jet OLEDB:Database Locking Mode=1;';
sdr:=sdr+'Jet OLEDB:Global Partial Bulk Ops=2;';
sdr:=sdr+'Jet OLEDB:Global Bulk Transactions=1;';
sdr:=sdr+'Jet OLEDB:New Database Password="";';
sdr:=sdr+'Jet OLEDB:Create System Database=False;';
sdr:=sdr+'Jet OLEDB:Encrypt Database=False;';
sdr:=sdr+'Jet OLEDB:Compact Without Replica Repair=False;';
sdr:=sdr+'Jet OLEDB:SFP=False';
ADOConnection1.ConnectionString:=sdr;
ADOConnection1.Connected:=true;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM название_таблицы');
Три совета:
1. Поле с типом данных Memo - слишком огромное и по сути своей не эффективное, поскольку предназначено для хранения больших текстовых массивов.
Если в поле нужно хранить строку не более 255 символов, отлично подходит обычный String.


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.