CAST - это выражение SQL-Server.используйте SELECT Field FROM...
в delphi: ADOQuery.FieldByName('Field').AsString
вы не можете привести его с помощью оператора SQL.
при использовании смешанных типов данных :
Чтение это из MSDN ( Предупреждение о смешанных типах данных ):
ADO должен угадать тип данных для каждого столбца в вашемЛист Excel или диапазон.(Это не зависит от настроек форматирования ячеек Excel.) Серьезная проблема может возникнуть, если в одном столбце смешаны числовые значения с текстовыми значениями.И Jet, и поставщик ODBC возвращают данные типа большинства, но возвращают значения NULL (пустые) для типа данных меньшинства.Если два типа одинаково смешаны в столбце, поставщик выбирает числовое значение поверх текста.
, вам необходимо добавить IMEX=1
в разделе расширенных свойств строки подключения.,постоянное поле будет TWideStringField.
Строка подключения должна выглядеть примерно так:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=C:\MyFile.xls;Mode=Share Deny None;Extended Properties="Excel 8.0;IMEX=1";...