4
У меня есть TSQLDataSet
в приложении Delphi 7. Он извлекает 2 поля (ID и Name) из таблицы MyTable.Ошибка TSQLDataset при миграции из delphi 7 в delphi XE4
object SQLDataSet: TSQLDataSet
GetMetadata = False
CommandText = 'select * from MyTable'
MaxBlobSize = -1
Params = <>
SQLConnection = mySQLConnection
object SQLDataSetID: TIntegerField
FieldName = 'ID'
ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
Required = True
end
object SQLDataSetNAME: TStringField
FieldName = 'NAME'
Required = True
Size = 50
end
end
Когда я мигрировал в Delphi xe4, я получаю следующее сообщение об ошибке:
class EDatabaseError with message 'SQLDataSet: Type mismatch for field 'NAME', expecting: String actual:WideString'
Что может быть возможной причиной этой проблемы и как я должен избавиться от него?
Примечание: Я использую firebird 2.5.2
.
Попробуйте изменить '' TStringField' к TWideStringField' – ZigiZ
@ZigiZ - Спасибо за ваши комментарии. Это решит проблему, но почему я должен это делать. Я пошел по ссылке http://isatsara.blogspot.in/2012/01/delphi-2010-expecting-string-actual.html, где это предложение было дано, но я не получил его объяснений. Также этот http://forums.devart.com/viewtopic.php?t=22080. Как я должен оправдывать это изменение для других? –
Каков тип базы данных Firebird для поля 'NAME' таблицы' MyTable'? –