Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireBird - превышение длины строки / 6 сообщений из 6, страница 1 из 1
26.08.2017, 09:19:44
    #39510843
wsnet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird - превышение длины строки
Не знаю здесь или нет ответ получить удастся, но все же при попытке выполнить код:
Код: 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
26.08.2017, 11:34:10
    #39510867
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird - превышение длины строки
Ну так очевидно же, что где-то между сотой и четырёхсотой строкой в твоём ёкселе лежит
какая-то дрянь длиной 28 байт. Ищи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.08.2017, 17:44:23
    #39510963
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird - превышение длины строки
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
26.08.2017, 19:08:26
    #39510982
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird - превышение длины строки
wsnet,

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


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


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

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


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


... и фсио.

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

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


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