Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55

Из query в excel не все строки выводятся

10.06.2014, 11:59. Показов 2233. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!
Такой вопрос: передаю данные из query в excel
rowcount =1345, а в excel заполненных строк всего 73
хотя обрамление на все 1345 срабатывает
почему не заполняется все остальное-то?
кусок кода

Delphi
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
RowCount := q_enk.RecordCount;
 
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); // задаем вариантный массив, который будем заполнять данными из ADOTable1
    q_enk.First;//заполняем массив значениями из ADOTable1
    for i := 1 to RowCount do
    begin
        ArrayData[i,1] := q_enk['date_post'];
        ...
        ArrayData[i,32] := q_enk['prim'];
 
 
        
        Q_enk.Next;
    end;
 
 
    Cell1 := XL.Cells[BeginRow-1, BeginCol];       // левая верхняя ячейка области в которую будем выводить данные
    Cell2 := XL.Cells[BeginRow+RowCount-1, BeginCol + ColCount-1];//правая нижняя ячейка области куда будем выводить данные
 
    for p:=1 to 100 do
  begin
    XL.Range[XL.Cells[BeginRow, BeginCol], Cell2].Value := ArrayData; //заполняем книгу нашими данными
    XL.Range[Cell1, Cell2].Borders.LineStyle := 1;
  ProgressBar1.Position:=p;
  ProgressBar1.Update
      end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2014, 11:59
Ответы с готовыми решениями:

При подключении к запросу через Excel не выводятся строки
В Access создал запрос: SELECT . & " " & . & " " & . AS name FROM WHERE Like '*.tiff' or Like '*.tiff' or Like '*.tiff' and ...

Не выводятся все строки
Программа должна искать совпадения из поиска в файле и выводить целую строку. В файле,откуда берутся данные,есть Вова1 и Вова2.День и...

Выводятся не все строки матрицы
Пытаюсь вывести простой двумерный массив: Program abc; Uses CRT Var mas:array of integer; i,j:integer; Begin For j:=1 to 15 do ...

18
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
10.06.2014, 17:06
Цитата Сообщение от scorpik_olga Посмотреть сообщение
а в excel заполненных строк всего 73
Потому что в наборе данных, возвращенных запросом, всего 73 записи.
Верить св-ву RecordCount можно далеко не всегда.
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
10.06.2014, 18:34  [ТС]
А вот и нет!
там именно 1345 записей!
проверила всякими способами
и вручную тоже считала (не все 1345, то больше 73 точно было)
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
10.06.2014, 22:09
Цитата Сообщение от scorpik_olga Посмотреть сообщение
проверила всякими способами
Ну рассказывай подробно про каждый из этих "всяких"..
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 12:15  [ТС]
Ну, например, в sql_консоли:
SQL
1
2
3
SELECT ...
FROM...
WHERE data_p BETWEEN '01.01.2014' AND '10.06.2014'
или
SQL
1
2
3
SELECT COUNT(id)
FROM  таблица
WHERE data_p BETWEEN '01.01.2014' AND '10.06.2014'
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 12:34
Цитата Сообщение от scorpik_olga Посмотреть сообщение
например, в sql_консоли
Это сторонний инструмент, для получения НД он может использовать иные параметры взаимодействия с сервером СУБД.
В частности (и наверняка) для показа НД консоль создает локальный однонаправленный курсор, выбирает на свою сторону сразу все записи, соответствующие условиям выборки, в результате чего ты и видишь в консоли все ожидаемые тобой записи.
А твой кверик наверняка открывает двунаправленный серверный курсор. Да еще поди асинхронный фетч задействован.
В результате всей этой солянки Next попросту не успевает за циклом и выдает первые 73 зафетченные при открытии НД записи.
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 12:38  [ТС]
Так! и что теперича делать?
Это ж не сама все придумала, а с книжек списывала (выгрузку по крайней мере)
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 12:47
сделай кверик с локальным курсором
открой кверик, сходи в конец НД (метод Last), получи RecordCount, верничь в начало и только после этого пройди по нему в цикле
while not Кверик.Eof do
begin
..
Кверик.Next;
end;
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 13:42  [ТС]
Теперича это вот так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); 
    q_enk.open;
    q_enk.last;
    q_enk.RecordCount;
 
    q_enk.First;
 
    while not q_enk.EOF do
 
    for i := 1 to q_enk.RecordCount-1 do
    begin
        ArrayData[i,1] := q_enk['date_post'];
        ...
        ArrayData[i,32] := q_enk['prim'];   
        Q_enk.Next;
    end;
Все равно берет не все
Похоже - теперь с середины до конца только
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 13:48
Цитата Сообщение от scorpik_olga Посмотреть сообщение
while not q_enk.EOF do for i := 1 to q_enk.RecordCount-1 do
Что это за хренотень ?
Ты пост #8 внимательно читала ?
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 13:50  [ТС]
АГА!
только без for ... ничего не выводит
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 13:59
Ну значит не судьба.
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 14:05  [ТС]
Чё, правда?!
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 14:27
Ага.
Судьба ж она благосклонна к тем кто вникает в несуразность происходящего в этих двух циклах.
А ты вникать не желаешь. но тупо и настырно пытаешься воткнуть свой for туда где он нафих не нужен)
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 14:34  [ТС]
А если не хамить, а ответить по существу?
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
11.06.2014, 14:45
По существу я уже ответил в #8.
А если читать пост и таки вникать в него, прежде чем надувать губы ?
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 15:05  [ТС]
открой кверик q_enk.open;
сходи в конец НД (метод Last) q_enk.last;
, получи RecordCount q_enk.RecordCount;
, верничь в начало q_enk.First;
и только после этого пройди по нему в цикле
while not q_enk.EOF do
begin
ArrayData[i,1] := q_enk['date_post'];
...

ArrayData[i,32] := q_enk['prim'];

Q_enk.Next;
end;


Что я пропустила?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
11.06.2014, 15:11
Цитата Сообщение от scorpik_olga Посмотреть сообщение
Что я пропустила?
В цикле while нет собственного счетчика. Так что изменять индекс i нужно ручками.
0
0 / 0 / 0
Регистрация: 06.09.2012
Сообщений: 55
11.06.2014, 19:22  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
i:=1;
q_enk.First;
while not q_enk.EOF do
begin
ArrayData[i,1] := q_enk['date_post'];
...
 
ArrayData[i,32] := q_enk['prim'];
inc(i);
Q_enk.Next;
end;
так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.06.2014, 19:22
Помогаю со студенческими работами здесь

Почему в консоли выводятся не все строки?
Посмотрите, пожалуйста, файл проэкта (прилагаю). Проблема в том, что в консоли видны не все строки, которые должны выводиться, оно как...

При выборке из двух таблиц выводятся все строки
Здравствуйте. Не могу разодраться с одним вопросом. Допустим у нас есть 2 таблицы: boy boy_id | boy_name 1 | a 2 | b 3 | c ...

В файле query выбрать все строки, в которых в названии улицы есть цифры
Помогите пожалуйста, разбираюсь с командой grep в терминале, не могу выполнить задание: В файле query выбрать все строки, в которых в...

Excel 2007 и Win32 Console application. Не выводятся в ячейки Excel данные из приложения
Работаю в Visual Studio 2003. Создал Win32 Console Application. На компьютере Office 2007. Компилю приложение, всё нормально. Потом...

MS Excel + Power Query
Уважаемые форумчане! Есть вопрос по Power Query. При объединении нескольких однотипных файлов в один с помощью Power Query после выбора...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru