|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Потребление памяти
Добрый день.
У меня есть программа, которая передает данные из StringGrida в таблицу SQL Server 2000. Используется ADOConnection, ADODataSet. Для доступа к таблице. Передача данных идет следующим образом: Код:
ADODataSet1['Date'] := StrToDateTime(StringGrid2.Cells[1, iRow]); ADODataSet1['AbonentA'] := StringGrid2.Cells[2, iRow]; ADODataSet1['AbonentB'] := StringGrid2.Cells[3, iRow]; ADODataSet1['Vremia'] := StringGrid2.Cells[4, iRow]; ADODataSet1['Dlit'] := StringGrid2.Cells[5, iRow]; ADODataSet1['Dlit_fakt'] := StringGrid2.Cells[6, iRow]; ADODataSet1['Vh_trunk'] := StringGrid2.Cells[7, iRow]; ADODataSet1['Ish_Trunk'] := StringGrid2.Cells[8, iRow]; ADODataSet1['Prichina'] := StringGrid2.Cells[9, iRow]; ADODataSet1['Zona'] := StringGrid2.Cells[10, iRow]; В свойствах ADODataSet CommandType стоит cmdStoredProc и в CommandText стоит имя хранимой процедуры sp1;1. А в хранимой процедуре команда: Код:
CREATE PROCEDURE sp1 AS select * from billing GO Проблема потребления памяти только на стадии открытия программы. Как быть, посоветуйте пожалуйста. |
#2
|
||||
|
||||
Ндя... это кто же придамал тащить на клиент 8 млн записей? Да и вообще зачем вам тянуть данные на клиент? вам же как я понимаю надо только записать их в базу.. или я чего-то не понимаю
Последний раз редактировалось Admin, Сегодня в 10:32. |
#3
|
||||
|
||||
Выставить для AdoDataset свойство CursorLocation := clUseServer
ПС: И кстати, а как в стринггрид данные попадают? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 17.01.2012 в 15:31. |
#4
|
|||
|
|||
Есть бинарный файл и есть его структура. Зная структуру файла считываем данные в StringGrid. Из StringGrid-а в таблицу SQL Server 2000 используя ADODataSet.
Настроил ADOConnection, в ADODataSet в свойствах Connection выбираю ADOConnection. Если я не заполню свойство ADODataSet CommandText, то когда свойство Active ставлю TRUE выходит ошибка "Missing command text property". Поэтому в свойстве CommandType ставлю cmdStoredProc и в CommandText пишу имя хранимой процедуры sp1;1, т.к. хранимые процедуры выполняются быстрее. Вот и поэтому происходят тормоза в программе. Как это дело обойти можно? |
#5
|
|||
|
|||
Вставлять данные через INSERT прямо в таблицу.
|
#6
|
|||
|
|||
Все на само деле оказалось куда проще:
Код:
select * from billing where npp='1' И теперь не тащу на клиента 8 млн. записей. И все записи корректно переносятся в таблицу. Проверил. Не ругайте, только начинаю. Тема закрыта. |
#7
|
||||
|
||||
зачем вообще делать select * from billing ? тебе же надо только делать insert
Последний раз редактировалось Admin, Сегодня в 10:32. |