![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 млн записей? Да и вообще зачем вам тянуть данные на клиент? вам же как я понимаю надо только записать их в базу.. или я чего-то не понимаю
|
|
#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
|