From RAD Studio API Documentation
Jump to: navigation, search
- Up to Parent: System.SysUtils
- Methods
- Properties
- Fields
Delphi
EConvertError = class(Exception);
C++
class PASCALIMPLEMENTATION EConvertError : public Exception
Contents
- 1 Properties
- 2 Description
- 2.1 See Also
- 2.2 Code Examples
Properties
Type | Visibility | Source | Unit | Parent |
---|---|---|---|---|
class | public |
System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Description
EConvertError is the exception class for string and object conversion errors.
EConvertError is raised when:
- An application makes an unsuccessful attempt to convert an integer, float, date, or time to a string, or to convert a string to one of these other types.
- An application passes an invalid argument to a formatting routine.
- An application attempts to assign one type of component derived from TPersistent to another component derived from TPersistent when such an assignment is not possible. For example, EConvertError is raised by the attempted assignment of a TButton control to a TEdit control.
In the examples below, an EConvertError exception is raised on the attempt to convert a String to a TDateTime and the date in the String is invalid. The type of exception and the error message are displayed.
//Delphi example const LF = #10; var TempDate: TDateTime; begin try TempDate := StrToDateTime('99/99/1998'); except on E: EConvertError do ShowMessage(E.ClassName + LF + E.Message); end; end;
//C++ example TDateTime TempDate; try { TempDate = StrToDateTime("99/99/1998"); } catch (EConvertError &E) { ShowMessage(AnsiString(E.ClassName()) + "n" + AnsiString(E.Message)); }
See Also
- DateTimeToStr
- DateTimeToString
- DateToStr
- EncodeDate
- EncodeTime
- FmtLoadStr
- FmtStr
- Format
- FormatBuf
- FormatCurr
- FormatDateTime
- FormatFloat
- IntToStr
- StrFmt
- StrLFmt
- StrToCurr
- StrToDate
- StrToDateTime
- StrToFloat
- StrToInt
- StrToTime
- TimeToStr
- TPersistent
Code Examples
- CharacterSurrogates (Delphi)
- CharacterSurrogates (C++)
Retrieved from «http://docwiki.embarcadero.com/Libraries/Sydney/e/index.php?title=System.SysUtils.EConvertError&oldid=624979»
Category:
- API Documentation
Hi there,
I am new to Lazarus and I am coming from Emba Delphi Rio 10.3.2. I have to change because of decision of the company.
Now i tryed to Convert my Delphi Projekt into Lazarus, but there seem to be something todo for me manually.
1. I tryed to convert the unit, but i get two errors:
A.: Problem when trying to repair the form file C:….*.lfm
B: Converting failed // i think because of the Problem above
2. I tryed to convert the project:
A. Units missing: Vcl.Forms, Vcl. Themes, Vcl.Styles //I are there Units from Lazarus to replace these (LCL.Forms or like that?)
if I skip them i got additional:
B. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System. Classes, Vcl.Graphics, Vcl.Controls, Vcl.Dialogs, Vcl.StdCtrls,
Vcl.ComCtrls, Vcl.Grids, Vcl.ExtCtrls, System. UITypes, Data.DB, Vcl. DBGrids, System.StrUtils, FireDAC.Stan.Intf, FireDAC.Stan.Option,
FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,
FireDAC.Phys.MySQL, FireDAC.MySQL.Def, FireDAC.VCLUI.Wait, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,
System.Win.Registry, FireDAC..Comp.Dataset, FireDAC.Client
Can someone tell me what to do or where i can find information to fix this to use in Lazarus?
Ok, i think most of them i could fix, but the firedac are missing and the «Problem when trying to repair the form file C:….*.lfm» is the most significant one which i can’t fix.
0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
|
1 |
|
20.01.2010, 10:43. Показов 21360. Ответов 17
Доброго времени суток всем!!! Недавно столкнулся с проблемой conversion error from string «» в InterBase, программу установил в 2007 году, работала нормально. Начиная с 01 января 2010 года перестало стабильно работать, то есть при работе с IBConsole результаты не сохраняются и выводится ошибка conversion error from string «», иногда ошибка выводится с номером ошибки в ковычках, но в большинстве случаев без номера ошибки. Пытался исправить, никак не получается. Подскажите в чем проблема и что надо делать??? Изображения
__________________
0 |
213 / 107 / 15 Регистрация: 28.01.2009 Сообщений: 481 |
|
20.01.2010, 12:49 |
2 |
0 |
0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
|
20.01.2010, 13:05 [ТС] |
3 |
Ex_Soft, Да, тоже самое. А это не связано с сертификатом?
0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
20.01.2010, 14:05 |
4 |
В 9 случаях из 10 где-то формируется строка, длина которой больше длины поля набора данных
0 |
0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
|
20.01.2010, 15:10 [ТС] |
5 |
SAMZ, Как изменить поле таблицы, в таблице это поле varchar(6). Добавлено через 14 минут Точно, нашел это поле, в таблице это поле varchar(6). Хотелось бы изменить ее на большее. Если не трудно опиши пошаговую работу (SQL query или что-то похожее на нее). Thank’s
0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
20.01.2010, 15:53 |
6 |
Найди в БД домен, которым описывается это поле. Если есть IBExpert, то это не проблема Код update RDB$FIELDS set RDB$FIELD_LENGTH = новая длина, RDB$CHARACTER_LENGTH = новая длина where RDB$FIELD_NAME = 'ЗДЕСЬ ИМЯ ДОМЕНА' новая длина — это новая длина поля
0 |
0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
|
20.01.2010, 20:49 [ТС] |
7 |
SAMZ, Установлено IBConsole, процедуру создания новой длины или выполнения запроса можно осуществить в IBConsole?
0 |
Ex_Soft 213 / 107 / 15 Регистрация: 28.01.2009 Сообщений: 481 |
||||
21.01.2010, 01:04 |
8 |
|||
Код update RDB$FIELDS set RDB$FIELD_LENGTH = новая длина, RDB$CHARACTER_LENGTH = новая длина where RDB$FIELD_NAME = 'ЗДЕСЬ ИМЯ ДОМЕНА' /me думает: по кому-то плачет канделябр…
А если домен:
0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
21.01.2010, 06:13 |
9 |
Установлено IBConsole, процедуру создания новой длины или выполнения запроса можно осуществить в IBConsole? IBConsole уже сто лет не использую. Скачай IBExpert c IBase.ru, очень хороший инструмент. С замечанием Ex_Soft согласен, канделябра заслужил.
0 |
Супер-модератор 8781 / 2532 / 144 Регистрация: 07.03.2007 Сообщений: 11,873 |
|
21.01.2010, 09:28 |
10 |
SAMZ, ну я бы таких дифирамбов IBExpert тоже не пел, потому что у меня он глючит причем даже не в работе с базой, а в самом интерфейсе, постоянно сыпет эксепшены… либо версия кривая, либо у меня руки, кто его знает…
0 |
1263 / 706 / 62 Регистрация: 21.12.2009 Сообщений: 2,255 |
|
21.01.2010, 10:20 |
11 |
ну я бы таких дифирамбов IBExpert тоже не пел, потому что у меня он глючит причем даже не в работе с базой, а в самом интерфейсе, постоянно сыпет эксепшены… либо версия кривая, либо у меня руки, кто его знает… На IB/FB работаю приблизительно с 1996 года и очень давно, много лет, использую IBExpert. С проблемами не сталкивался
0 |
213 / 107 / 15 Регистрация: 28.01.2009 Сообщений: 481 |
|
21.01.2010, 10:26 |
12 |
ну я бы таких дифирамбов IBExpert тоже не пел, потому что у меня он глючит причем даже не в работе с базой, а в самом интерфейсе, постоянно сыпет эксепшены… либо версия кривая, либо у меня руки, кто его знает… /me думает: странно: всю Одессу удовлетворяет, одного Вас — нЭт. Лучшего GUI инструмента под IB/FB/Yaffil — нЭт. А по поводу глюков — сообщите Александру (news://ibexpert.info/interbase.ibexpert.ru)
0 |
dozent 0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
||||
21.01.2010, 11:54 [ТС] |
13 |
|||
Ex_Soft, На запрос
выводит такой error Миниатюры
0 |
Супер-модератор 8781 / 2532 / 144 Регистрация: 07.03.2007 Сообщений: 11,873 |
|
21.01.2010, 12:22 |
14 |
Ex_Soft,
/me думает: странно: всю Одессу удовлетворяет, одного Вас — нЭт. Лучшего GUI инструмента под IB/FB/Yaffil — нЭт. а меня как-то раздражают окошки с неперехваченными исключениями, и, тем более, я ничего не сказал про работу с базами, у меня притензии именно программным ошибкам…
0 |
Ex_Soft 213 / 107 / 15 Регистрация: 28.01.2009 Сообщений: 481 |
||||
21.01.2010, 13:00 |
15 |
|||
такой error
Все сухо… FB 2.1 WI-V6.3.3.18185 Дорогая редакция, что я делаю не так? Дайте DDL таблицы и версию сервера.
а меня как-то раздражают окошки с неперехваченными исключениями … у меня притензии именно программным ошибкам… 1. Версия IBExpert’а
А по поводу глюков — сообщите Александру (news://ibexpert.info/interbase.ibexpert.ru)
0 |
0 / 0 / 0 Регистрация: 26.05.2009 Сообщений: 39 |
|
21.01.2010, 13:37 [ТС] |
16 |
Ex_Soft,
Все сухо… FB 2.1 WI-V6.3.3.18185 Дорогая редакция, что я делаю не так? Дайте DDL таблицы и версию сервера. Версия сервера Intebase 7.0 Изменить таблицу, то есть поле никак не получается…
0 |
Супер-модератор 8781 / 2532 / 144 Регистрация: 07.03.2007 Сообщений: 11,873 |
|
21.01.2010, 14:01 |
17 |
Ex_Soft, Version 2004 03 16
0 |
213 / 107 / 15 Регистрация: 28.01.2009 Сообщений: 481 |
|
21.01.2010, 15:41 |
18 |
выводит такой error БлЫн!!! Нечего printscreen’ы вставлять. Не шоб просто самому руками продублировать. Ну там же написано:
Column REQUEST_CODE from table PAYMENT_REQUEST is referenced in DESBURSEGMENT_INSERT DESBURSEGMENT_INSERT — это тригер? Попробуйте грохнуть его, alter’нуть таблицу и переподписать.
2004 03 16 IBExpert
1 |
← →
Девушка
(2004-03-21 13:46)
[0]
Ребята, помогите…
Delhi выдает
Conversion string error from string «Proba»…
на
st:=»Proba»;
SQLStoredProc1.ParamByName(«NAIMENOVAN»).Value:=st;
SQLStoredProc1.ExecProc;
Button2.Caption:=IntToStr(SQLStoredProc1.ParamByName(«ID»).Value);
где
CREATE PROCEDURE ADDZAMEASPOSOB (
NAIMENOVAN VARCHAR(50)
) RETURNS (
ID INTEGER
) AS
begin
ID = gen_id(gZamenaSposob, 1);
insert into ZamenaSposob (IdZamenaSposob,Naimenovan) values(:ID,:NAIMENOVAN);
end
а если st:=»Что-нибудь на русском» то вообще что-то про CharSet…
Что делать?
← →
Девушка
(2004-03-21 14:43)
[1]
Неужели никто строковые параметры в хранимую процедуру не передавал?
> Delhi выдает
Delphi конечно…
← →
KSergey ©
(2004-03-21 15:05)
[2]
А параметр «NAIMENOVAN» каккого типа у SQLStoredProc1 прописан?
не плохо так же путем применения пошаговой отладки, например, выяснить в какой-же именно строке возникает ошибка…
← →
Девушка
(2004-03-21 15:10)
[3]
object SQLStoredProc1: TSQLStoredProc
MaxBlobSize = -1
Params = <
item
DataType = ftString
Name = «NAIMENOVAN»
ParamType = ptInput
end
item
DataType = ftInteger
Name = «ID»
ParamType = ptOutput
Size = 4
end>
SQLConnection = SQLConnection1
StoredProcName = «ADDZAMEASPOSOB»
Left = 152
Top = 56
end
Суть в том, что процедура добавляет запись в таблицу и возвращает id-к который был сгенерирован.
← →
Девушка
(2004-03-21 15:13)
[4]
Пробовала пользоваться и shorstring и прямым задаванием
SQLStoredProc1.ParamByName(«NAIMENOVAN»).Value:=»Proba»
← →
Девушка
(2004-03-21 15:23)
[5]
Sorry был задан не тот тип столбца в структуре таблицы
Типов сообщений компилятора — более двухсот. Рассмотрим перечень наиболее встречающихся сообщений класса Error
- 0. <Что-то1> expected but <Что-то2> found. Обычно это сообщение возникает при синтаксической ошибке.Например,в случае небаланса скобок,компилятор сообщит: ‘)’ expected but ‘;’ found (вместо ожидавшейся скобки найдена запятая).
Компилятор часто сообщает, что ‘end’ ожидается,например:x:= 5,7; здесь неуместен разделитель-запятая, а сообщается про end. (‘END’ expected but ‘,’ found)
- 1. <Имя> is not a type identifier. Данное <Имя> не является именем типа.
- 2. ‘;’ not allowed before ‘Else’. Перед else нельзя ставить точку с запятой
- 3. Abstract method must be virtual or dynamic. Абстрактный метод должен быть виртуальным или динамическим.
- 4. Ambiguous overloaded call to <Имя блока>. Компилятор не может однозначно выбрать перегружаемый блок. Измените параметр.
- 5. Array type required. Ошибка возникает в случаях, когда в индексе элемента массива указано больше уровней, чем предусмотрено описанием, и если массив не описан. Например, после объявления двумерного массива х или простой переменной х ошибочно записывают элемент х[2,1,1] (в нем показано три измерения).
- 6. Assignment to FOR-loop variable <Имя>. Присваивание значения параметру FOR-цикла в теле цикла.
Например, вследствие описки дважды используется имя i в кратном цикле:
For i:= 1 to n do For i:= 1 to m do ...
- 7. Break or Continue outside of loop. Break или Continue — не в цикле.
- 8. Cannot initialize local variables. Локальные переменные запрещено инициализировать (задавать им значения при описании).
- 9. Cannot assign to/read a read-only/write-only property. Присвоение значения свойству read/only и чтение свойства write/only запрещены.
- 10. Constant expression expected.В этом месте должна стоять константа или константное выражение, например константа выбора в структуре Case.
- 11. Constant expression violates subrange bounds. Выход значения константы из диапазона. Контроль не полон. Например, «сойдет с рук» присваивание x:=3000000000, где х имеет тип integer, но начение х будет искажено.
- 12. Constant or type identifier expected. Требуется имя типа или тип-диапазон.
- 13. Could not compile used unit <Имя>. Компиляция присоединенного модуля <Имя> невозможна.
- 14. Data type too large. Тип определяет структуру размером более 2 Гбайт; это слишком много.
- 15. Declaration expected but <Что-то> found. Пропущено описание или оператор.
- 16. Declaration of <Имя> differs from previous declarations… Данный заголовок блока не соответствует упреждающему объявлению блока.
- 17. Default parameter <Имя> must be by-value or constant. Необязательный параметр (со значением по умолчанию) не должен вызываться по ссылке.
- 18. Expression expected. В этом месте программы должно стоять выражение.
- 19. Expression too complicated. Выражение излишне сложно для компиляции.
- 20. File type not allowed here. В этом месте или в этой роли файловую переменную нельзя использовать. Например, она не может быть формальным параметром-значением.
- 21. For loop control variable must be simple local variable. Параметр цикла должен быть простой локальной (описанной в этом же блоке) переменной.
- 22. For loop control variable must have ordinal type. Параметр цикла должен иметь порядковый тип.Вещественный тип запрещен.
- 23. Function needs result type. В заголовке функции надо указывать тип ее результата.
- 24. Identifier expected but <Что-то> found. В этом месте должно стоять имя. Например, пропущено имя функции после Function.
- 25. Identifier redeclared <Имя>.<Имя> описано повторно, но в пределах блока имя можно описать лишь раз. Проверьте, не обозначена ли локальная переменная тем же именем, что и формальный параметр блока.
- 26. Illegal character in input file <знак>. Запретный знак, например «русская» буква, либо вы оставили скобку }, убрав открывающую скобку {.
- 27. Illegal type in Read/Readln (Write/Writeln) statement. Элемент запрещенного типа в списке ввода/вывода.
- 28. Incompatible types <указание типов>. Несоответствие типов по присваиванию или типов операндов одной операции. Сообщение выдается и при неверном использовании структур. Например, z — запись, ошибочно записано присваивание z:= 0 (работать надо с полями записи).
- 29. Invalid function result type. Недопустимый тип результата функции.
- 30. Label already defined: <Метка>. <Метка> уже помечает другой оператор.
- 31. Left side cannot be assigned to. He может быть такой левой части в присваивании. Примеры: попытка присвоить значение файловой переменной, присвоение значения формальному параметру-константе.
- 32. Line too long. В строке программного текста больше 255 знаков.
- 33. Low bound exceeds high bound. Нижняя граница превышает верхнюю.
- 34. Missing operator or semicolon.Пропуск операции (например перед скобкой) или пропуск точки с запятой. При пропуске ‘;’ маркер ошибки стоит на очередном предложении (объявлении или операторе).
- 35. Missing parameter type. He указан тип формального параметра-значения или параметра процедурного типа.
- 36. Not enough actual parameters. He хватает фактических параметров.
- 37. Need to specify at least one dimension … Нужно задавать в операторе SetLength хотя бы один размер динамического массива.
- 38. Number of elements differs from declaration. Число элементов в структурной константе не соответствует ее описанию.
- 39. Operator not applicable to this operand type. Операция не применима к операндам данного типа. Например: ‘А’ or ‘В’; ‘Text1’* ‘Text2’.
- 40. Order of fields in record constant differs from declaration. Порядок полей в записи-константе не соответствует описанию записи.
- 41. Ordinal type required. Требуется порядковый тип (например, в индексе).
- 42. Out of memory. Компилятору не хватает памяти.
- 43. Statement expected but <Что-то> found. В этом месте должен стоять оператор. Сообщение выдается во всех случаях, когда в тело блока или секцию инициализации ошибочно помещают описание (<Что-то>). Ошибочная форма обращения к процедуре Procedure <Имя> или к функции Function <Имя> также вызывает сообщение.
- 44. Sets may have at most 256 elements. Множество (тип Set) не может содержать более 256 элементов.
- 45. Slice standard function only allowed as open array argument. Функцию Slice можно использовать лишь как фактический параметр
- 46. Statement not allowed in interface part. Предложения в секции интерфейса программного модуля недопустимы.
- 47. Syntax error in real number. Синтаксическая ошибка в записи числа вещственного типа.
- 48. There is no overload version of <Имя> that can be called with these arguments.Не предусмотрен перегружаемый блок <Имя>, который мог бы вызываться с таким аргументом. Пример: IntToStr(x), где х – выражение вещественного типа.
- 49. Too many actual parameters. Фактических параметров больше, чем формальных.
- 50. Type actual and formal var parameters must be identical. Тип фактического параметра должен быть идентичен типу формального параметра-переменной.
- 51. Type of expression must be <Тип>. Выражение должно быть указанного типа. Например,после While и Until должно стоять логическое выражение.
- 52. Undeclared identifier: <Имя>.Не описано <Имя>. Проверьте есть ли описание в нужном месте,нет ли описок в имени. Если указано имя компонента формы, проверьте,поместили ли компонент на данную форму.
- 53. Unexpected end of file in comment started on line <N>. Неожиданный конец файла при незавершенном комментарии, начало комментария — в строке N.
- 54. Unit name mismatch: <Имя>. Имя модуля ошибочно.
- 55. Unsatisfied forward or external declaration <Имя>. Отсутствует описание блока, объявление которого было дано (заголовок в интерфейсе или в описании объектного типа, либо упреждающее описание).
- 56. Unterminate string. He закрыта апострофом строка-константа типа string.
Рассмотрим также некоторые сообщения классов warning и hint.
- Return value of function <Имя> might be undefined. В теле функции нет присваивания ее результата.
- Variable <Имя> might not have been initialized. Указывает имя переменой, которой не задали значения.
- For-Loop variable <Имя> may be undefined after loop. Попытка использования значения параметра For-цикла после завершения этого цикла.
- Text after final ‘END.’ ignored by compiler. Текст, идущий за конечной строкой модуля, игнорируется компилятором.
- Variable <Имя> is declared but never used in <Имя блока>. Обращает внимание на переменную <Имя>, описанную,но не нашедшую применения.
- Value assigned to <Имя> never used. Хотя бы одно значение переменной <Имя> никак не использовано.
Несколько рекомендаций
Сосредотачивайтесь на первом сообщении компилятора. Исправление хотя бы одной ошибки и повторная компиляция может значительно уменьшить число сообщений об ошибках,поэтому не упорствуйте, стремясь понять сразу причину каждого сообщения.
Не удаляйте прежний вариант кода,пока не убедитесь,что ошибка устранена. Лучше на время закомментировать код,заключив его в скобки: { код }
Компилятор не анализирует, как будет выполняться программа, поэтому выход значения индекса из диапазона выявляет только если индекс задан константным выражением. Деление на ноль вообще пропускается, кроме оператора div, в случае если делитель — константное выражение.