Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Вниз

Проблема вытаскиваниея информации   Найти похожие ветки 

 
passm   (2002-10-23 14:07) [40]

Separator © (23.10.02 13:17)> Для хранения информации подобного типа в DB2 есть CHARACTER(N) FOR BIT DATA и BDE возвращает это поле как TBytesField.
Но, если это поле преобразовать в другой строковый тип, например, CAST(T1.FIELD1 AS VARCHAR(13)), то BDE все равно возвращает его как TBytesField.
В связи с этим, попробуй проверить какое поле будет у TQuery - воспользуйся Fields Editor"ом. Если TStringField, то попробуй сделать в запросе CAST, чтобы было TBinaryField или TBytesField. Далее рассматривай TBinaryField.Value: Variant как вариантный массив с числами Byte.


 
Separator   (2002-10-24 06:56) [41]


> Andriano © (23.10.02 13:54)

Читай внимательно, я использую MySql базу, он алежит на другом хосте в локалке на Linux машине


 
Separator   (2002-10-24 07:22) [42]


> passm © (23.10.02 14:07)

В Fields типа TStringField, как мне это сделать (Cast?) Можешщь привести пример?


 
passm   (2002-10-24 09:54) [43]

Separator © (24.10.02 07:22)>Например:
Query1.SQL.Text:=
"SELECT CAST(Q1.FIELD1 AS BLOB(18)) AS FIELD1
FROM TABLE1 AS Q1
WHERE Q1.ID = :TABLE1_ID"

Далее при открытии запроса BLOB воспринимается как Binary и можно работать как с вариантным массивом.
P.S. Но это для DB2 - для MySQL испытать нет возможности :\


 
Separator   (2002-10-24 11:44) [44]

В общем получилосьЮ но немного по другому. Я сформировал вот какой запрос:
"select ascii(substring(Par1,1,1)), ascii(substring(Par1,2,1)), ascii(substring(Par1,3,1)), ascii(substring(Par1,4,1)), ascii(substring(Par1,5,1)), ascii(substring(Par1,6,1)), ascii(substring(Par1,7,1)), ascii(substring(Par1,8,1)), ascii(substring(Par1,9,1)), ascii(substring(Par1,10,1)), ascii(substring(Par1,11,1)), ascii(substring(Par1,12,1)), ascii(substring(Par1,13,1)), ascii(substring(Par1,14,1)), ascii(substring(Par1,15,1)), ascii(substring(Par1,16,1)), ascii(substring(Par1,17,1)), ascii(substring(Par1,18,1)) from ArcRecv1 where NZap=1"
Результат достигнут, но вот скорость пострадает и больше памяти требуется


 
passm   (2002-10-24 12:04) [45]

Separator © (24.10.02 11:44)> А попробуй воспользоваться TField.GetData(Buffer: Pointer): Boolean.
...
const
DSize = 18;
type
TDataArray = array[0..Dsize - 1] of Byte;
PDataArray = ^TDataArray;
var
P: PDataArray;
begin
New(P);
Query1FIELD1.GetData(P);
...
Dispose(P)
end;


 
Separator   (2002-10-24 12:39) [46]

Огромное спасибо работает, хотя и раньше пытался использовать этот метод, но постоянно какие-то ошибки вылетали.
В общем получилось, даже не использую массив, сразу накладываю всю структуру:

type
PPar= ^TPar;
TPar= packed record
flgTS: byte;
Ckv: single;
Vmin: single;
Vkv: byte;
TimeRecv: cardinal;
TimeUpd: cardinal
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Par: PPar;
St: string;
begin
New(Par);

ZMySqlQuery1.Sql.Text:= "select Par1 from ArcRecv1 where NZap=1";
ZMySqlDatabase1.Connect;
ZMySqlQuery1.Open;
ZMySqlQuery1.Fields.Fields[0].GetData(Par);

Memo1.Lines.Clear;
Memo1.Lines.Add("flgTS: "+IntToStr(Par^.flgTS));
Memo1.Lines.Add("Ckv: "+FloatToStr(Par^.Ckv));
Memo1.Lines.Add("Vmin: "+FloatToStr(Par^.Vmin));
Memo1.Lines.Add("Vkv: "+IntToStr(Par^.Vkv));
Memo1.Lines.Add("TimeRecv: "+IntToStr(Par^.TimeRecv));
Memo1.Lines.Add("TimeUpd: "+IntToStr(Par^.TimeUpd));

Dispose(Par);

ZMySqlQuery1.Close;
ZMySqlDatabase1.Disconnect;
end;



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.01 c
1-45971
Тундра
2002-11-04 15:21
2002.11.14
Вызов контекстной помощи


3-45712
sterran
2002-10-24 10:16
2002.11.14
Вопрос по SQL


14-46092
copyr25
2002-10-25 21:09
2002.11.14
---|Ветка была без названия|---


1-45802
delphi4fun
2002-11-04 21:08
2002.11.14
вставить image в TreeView


3-45683
Zloy
2002-10-26 16:02
2002.11.14
А как в таблицу парадокс, в поле график запихнуть jpeg.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский