![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема вытаскиваниея информации [D6, MySQL]
Separator © (2002-10-21 11:32:00)Я использую zeos компоненты.
У меня в базе есть поля под название Par1..ParX типа char(18). В них хранятся числовые данные, т.е. просто набор чисел. Как мне их вытащить???
Вот кусок кода:
var
Ar: array [1..18] of byte;
begin
ZMySqlQuery1.Sql.Clear;
ZMySqlQuery1.Sql("select Par1 from ArcRecv1 where NZap=1"); //NZap - номер записи
ZMySqlQuery1.Open;
Ar:= //Как вытащить???
ZMySqlQuery1.Close
end;
passm (2002-10-21 12:41:00) [41]Separator © (21.10.02 12:22)> Если в середине #0, то это воспринимается как конец строки, и дальнейшие значения прочитать проблематично.
Попробуй привести это поле в тип CAST( (?... для Paradox"а Bytes, для DB2 CHARACTER(N) FOR BIT DATA, для MySQL - ???), чтобы в Delphi появилось поле типа ftBytes длиной в 18 байт, а далее читай по циклу.
ЮЮ (2002-10-21 12:39:00) [42]Char в Integer нада преобразовывать, а не приводить
Ar[i] := Ord(ZMySqlQuery1.Fields.Fields[0].AsString[i]));
Да и в цикле вызывать метод AsString не расточительно?
Separator (2002-10-21 12:22:00) [43]Вылетает с ошибкой AccessViolation.
Пишу так:
var
Ar: array [1..18] of byte;
i: integer;
begin
ZMySqlDatabase1.Connect;
ZMySqlQuery1.Open;
for i:= 1 to 18 do
Ar[i]:= Integer(ZMySqlQuery1.Fields.Fields[0].AsString[i]);
ZMySqlQuery1.Close;
ZMySqlDatabase1.Disconnect;
end
ЮЮ (2002-10-21 12:10:00) [44]>Или хотябы узнать pointer, где лежат эти данные
ZMySqlQuery1.Fields[0].AsString[1]
Separator (2002-10-21 11:51:00) [45]Проситай внимательно! В одной ячеке хранятся 18 различных чисел типа byte. Мне это все надо вытащить в массив. Или хотябы узнать pointer, где лежат эти данные.
ЮЮ (2002-10-21 11:49:00) [46]ar: Integer;
ar:=StrToInt(ZMySqlQuery1.Fields[0].value);