Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi и DBF / 9 сообщений из 9, страница 1 из 1
27.05.2003, 12:05
    #32169416
Oleg0505
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
Есть процедурка писанная на Delhpi 7 через ADOquery:

var i,c_next:integer;
s: string;
mass : array[1..2] of byte;
begin
i:=0;
c_next:=0;
datamodule2.WorkGroup.close;
datamodule2.WorkGroup.open;

for i:=0 to 1000 do
begin

c_next:=c_next+1;
// mass:=c_next div 256;
// mass:=c_next mod 256;
s:=chr(c_next div 256)+chr(c_next mod 256);

datamodule2.WorkGroup.Insert;
// datamodule2.WorkGroup.FieldByName('C_CC').SetData(@mass,false); datamodule2.WorkGroup.FieldByName('c_cc').Value:=s;
datamodule2.WorkGroup.post;
end;
Она служит для заполнения двухбайтового символьного поля DBF таблицы цифрами от 1 до 1000. Все тривиально, НО после того как процедура отработала, в поле наблюдаются аномальные значения. Например, идут цифири: 1,2,3,...,9,10..Кажется, все отлично, затем ...,например, 67,68, 69, 69,69,69,...и 70,71,72, .. , 77,77,77,65,43,78,79...и т.д. ОТКУДА ОНИ БЕРУТЬСЯ ? Сломал всю голову...Причем появляются они уже после того как отработала программа, проверял...Ни кто из знакомых подсказать как решить эту проблемму не смог.
Пробывал под WIN98,WIN2000. Пробовал писать на Delphi5 и 6. На разных компьютерах - результат один и тот же... Грустно...
Пожалуйста , подскажите в чем грабли ?
...
Рейтинг: 0 / 0
27.05.2003, 12:11
    #32169423
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
А в дебаггере глядел какие значения фактически передаются?
...
Рейтинг: 0 / 0
27.05.2003, 12:20
    #32169431
Oleg0505
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
В том то и дело, что значения передаются верные. Проверял и не раз.
Прога отработала, закрываю ее, открываю DBF на просмотр, например DN-ом и привет, вот они непонятные цифири...
...
Рейтинг: 0 / 0
27.05.2003, 12:31
    #32169447
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
... FieldByName('c_cc')....
Какого типа фактически?
Интересно как ты в двухбайтовое символономе поле смогешь засандалить допустим '1000'....
...
Рейтинг: 0 / 0
27.05.2003, 12:41
    #32169459
Oleg0505
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
Поле C_CC двухбайтовое поле, а "засандалить 1000" я могу , например, вот так:
c_next:=1000;
s:=chr(c_next div 256)+chr(c_next mod 256);
...insert;
...fieldbyname('C_CC').value:=s;
...post;
Все очень просто...
...
Рейтинг: 0 / 0
27.05.2003, 12:53
    #32169477
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
так какое оно всетаки TStringField? TFloatField?
какое?
...
Рейтинг: 0 / 0
27.05.2003, 16:06
    #32169829
Papka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
Jesli ne TStringField to vaase togda hernja budet.
...
Рейтинг: 0 / 0
28.05.2003, 12:34
    #32170530
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
Можешь попробовать через БДЕ, интресно, что там получится
...
Рейтинг: 0 / 0
28.05.2003, 12:40
    #32170540
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Delphi и DBF
Попробуй сделать из таблицы select .... order by c_cc.

А то мало ли что...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi и DBF / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]