powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireBird - превышение длины строки
6 сообщений из 6, страница 1 из 1
FireBird - превышение длины строки
    #39510843
Фотография wsnet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю здесь или нет ответ получить удастся, но все же при попытке выполнить код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
procedure TForm1.cxButton7Click(Sender: TObject);
var
  ExcelApp, Sheet: OLEVariant;
  WorkSheet: Variant;
  StartDate: string;
  EndDate: string;
  InnOrg: string;
  i, j, RowCount, ColCount: Integer;
  Sum: Integer;
begin
   // создаем объект Excel
  ExcelApp := CreateOleObject('Excel.Application');
  try
    // делаем окно Excel невидимым
    ExcelApp.Visible := false;
    // открываем файл XLSFile
    ExcelApp.Workbooks.Open('d:\1.xlsx');
    // создаем объект Sheet(страница) и указываем номер листа (1)
    // в книге, с которого будем осуществл¤ть чтение
    WorkSheet := ExcelApp.Workbooks[1].WorkSheets[1];

    for i := 38 to 400 do
    begin
      InnOrg := WorkSheet.cells[i, 7];
      //ShowMessage(InnOrg);
      if (VarIsNull(InnOrg)) or (Trim(InnOrg) = '') then
        Exit;
      qRisk.Close;
      qRisk.SQL.Clear;
      qRisk.SQL.Add('SELECT c_risk FROM s_object WHERE orginn=:pOrgInn');
      qRisk.ParamByName('pOrgInn').AsString := InnOrg;
      qRisk.Open;
      WorkSheet.cells[i, 22] := qRisk.FieldByName('c_risk').AsInteger;
    end;
   // ShowMessage(IntToStr(Sum));
  finally
    // закрываем приложение Excel
    ExcelApp.Quit;
    // очищаем выделенную пам¤ть
    ExcelApp := Unassigned;
    // Sheet := Unassigned;
  end;
end;


При попытке выполнить цикл с меньшим числом строк, например
Код: pascal
1.
  for i := 38 to 100 do



Ошибок нет, при попытке выполнить с
Код: pascal
1.
  for i := 38 to 400 do



Ошибка
Код: pascal
1.
Trying to store a string of length 28 into a field that can only 20



Компоненты доступу IBQuery родные.

Модератор: Как мне оформить свое сообщение?
...
Рейтинг: 0 / 0
FireBird - превышение длины строки
    #39510867
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так очевидно же, что где-то между сотой и четырёхсотой строкой в твоём ёкселе лежит
какая-то дрянь длиной 28 байт. Ищи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird - превышение длины строки
    #39510963
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet> Trying to store a string of length 28 into a field that can only 20

А на какой строке эта ошибка, на присвоении ParamByName ?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FireBird - превышение длины строки
    #39510982
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wsnet,

что там разбираться, замени строчку
Код: pascal
1.
      qRisk.ParamByName('pOrgInn').AsString := InnOrg;


на
Код: pascal
1.
      qRisk.ParamByName('pOrgInn').AsString := LeftStr(InnOrg, 28);


... и фсио.
...
Рейтинг: 0 / 0
FireBird - превышение длины строки
    #39511010
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДwsnet,

что там разбираться, замени строчку
Код: pascal
1.
      qRisk.ParamByName('pOrgInn').AsString := InnOrg;


на
Код: pascal
1.
      qRisk.ParamByName('pOrgInn').AsString := LeftStr(InnOrg, 28);


... и фсио.

- К пуговицам претензии есть?
- Нет! Пришиты насмерть, не оторвёшь!
...
Рейтинг: 0 / 0
FireBird - превышение длины строки
    #39511353
_Ворчун_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Темы топика не касается, но все-таки:
Это в цикле зачем?
Код: pascal
1.
2.
      qRisk.SQL.Clear;
      qRisk.SQL.Add('SELECT c_risk FROM s_object WHERE orginn=:pOrgInn');

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


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