Частичный экспорт баз запросов
-
- Сообщения: 21
- Зарегистрирован: 02 авг 2006, 11:28
Частичный экспорт баз запросов
Жутко извиняюсь за свою безграмотность, но может быть кто-нибудь подскажет как можно в запросе прописать так, что бы выводилось только ограниченное число записей (на пример,записи с номером меньшим 65'000, или с номером в промежетке с 65'001 по 130'000).
Смысл в том, что в Access импортировать не получается (кодировка русского текста меняется до неузнаваемости), а Excel в случае превышения заветного предела в 65'536 начинает затирать первые записи?
Смысл в том, что в Access импортировать не получается (кодировка русского текста меняется до неузнаваемости), а Excel в случае превышения заветного предела в 65'536 начинает затирать первые записи?
собственно, если копируемая таблица таки имеет первичный ключ, то достаточно указать условие where, и покопировать данные в 2 приема
насчет копирования - нужно использовать кодировку в коннекте такую же, с которой база создана или данные в базе. Тогда и в access все покатит. См. настройки odbc, или через что ты там пытаешься в аксес это импортировать.
насчет копирования - нужно использовать кодировку в коннекте такую же, с которой база создана или данные в базе. Тогда и в access все покатит. См. настройки odbc, или через что ты там пытаешься в аксес это импортировать.
-
- Сообщения: 21
- Зарегистрирован: 02 авг 2006, 11:28
Ну собственно говоря, я так и хотел, только не знаю как запрос модифицировать. Можешь примерчик написать, плз?kdv писал(а):собственно, если копируемая таблица таки имеет первичный ключ, :) то достаточно указать условие where, и покопировать данные в 2 приема :)
where first/skip
или как?
ни разу с этим не сталкивался, так сразу сложно понять! :(
-
- Сообщения: 21
- Зарегистрирован: 02 авг 2006, 11:28
-
- Сообщения: 21
- Зарегистрирован: 02 авг 2006, 11:28
Вот это и надо было начинать. Пример (Delphi):
Код: Выделить всё
repeat
for I := 0 to $FFFF do
if not DataSet.Eof then
begin
... // Код вставки записи в Excel
DataSet.Next;
end;
until DataSet.Eof;
CyberMax
А нельзя ли пояснить, в чем смысл двух циклов?
А то
как-то проще воспринимается...
А нельзя ли пояснить, в чем смысл двух циклов?
А то
Код: Выделить всё
while not DataSet.Eof do
begin
// Код вставки записи в Excel
DataSet.Next;
end;
-
- Сообщения: 21
- Зарегистрирован: 02 авг 2006, 11:28
InterBase 7.5, FireBird 2.0kdv писал(а): что значит > 6.5 ? Это 7.0, 7.1, 7.5 ?
В любом случае в этих версиях нет first/skip, но есть order by ... rows. См. документацию (datadef.pdf) на свою версию.
а на сайте на русском языке может быть что-то есть.
Про Delphi знаю, только, что оно естьВот это и надо было начинать. Пример (Delphi):
Думал, что тут и так все понятно... . Для тех, кто не в курсе, объясняю. По терминологии MS файл Excel'я - книга. Книга состоит из страниц. В страницах находятся строки. В одной странице может быть максимум 65535 строк ($FFFF). То есть на ПК строки отводится 2 байта . Проведя аналогию, можно сказать, что файл экселя - это БД, страница - это таблица БД. Ну а строка страницы - это запись таблицы.WildSery писал(а):Внешний цикл как раз и должен создавать новый документ (CyberMax не вставил комментарий в это место, к сожалению), а вложенный цикл заполняет его фиксированным числом записей.
Да, между repeat и for должен быть код создания новой страницы в книге.
На чем тогда пишете?Torkvemada писал(а):Про Delphi знаю, только, что оно есть