У меня есть код Delphi 2005, который я использую для получения имен полей таблицы базы данных.
Он работает без проблем на 32-разрядных компьютерах (Windows XP, Windows Vista, Windows 7).
Однако этоне возвращает имена полей при запуске на 64-битной машине (Windows Vista или Windows 7).
Код выглядит следующим образом:
uses Db, SQLExpr;
procedure TForm1.ShowFieldNames(SQLConnection: TSQLConnection;
FieldNames: TStringList);
var FieldIndex: Integer;
begin
SQLConnection.GetFieldNames('TABLENAME', FieldNames);
ListBox.Items.Add('Field Count = ' + IntToStr(FieldNames.Count));
for FieldIndex:=0 to FieldNames.Count - 1 do
ListBox.Items.Add('FieldName = ' + FieldNames[FieldIndex]);
end;
На 32-битных машинах это показываетненулевой счетчик и список имен полей, на 64-битной машине это отображает «Field Count = 0»
Когда я перекомпилирую с Delphi 2006 или Delphi 2007, проблема исчезнет.
(я использую Firebird 2.5)
Я хочу исправить это, не обновляя программу до более поздней версии Delphi.
Я также хотел бы понять, почемупроблема возникает - почему программа ведет себя по-разному в 64-битной Windows.
Можете ли вы дать мне какой-нибудь совет, пожалуйста.