|
|
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Всем привет. Помогите, уже мозг сломал. Есть форма, на форме грид и adodc источник данных и кнопочка "загрузить" при нажатии на кнопочку с ФТП скачивается база access и таблица из неё выводится в грид: формирую подключение : form.Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_c & ";Persist Security Info=False" form.Adodc.RecordSource = "SELECT * FROM [table1]" ну и затем вывод в грид TDBGrid1.DataSource = Adodc TDBGrid1.Refresh . При повторном нажатии кнопочки нужно убить с жёсткого диска базу, скачать новую и опять вывести в грид данные. Получается только если unload form, kill (path) и опять load. Посоветуйте, как граммотно отключить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 09:21 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Выкинуть ADODC — он базу не отпустит, а убить его можно только выгрузкой формы. Можно попробовать сделать Adodc.ConnectionString = "", но вряд ли поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:00 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
пробовал, не отпускает(( альтернативные способы есть? Подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:37 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Уже подсказал — выкинуть ADODC и использовать ADODB.Connection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:38 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Попробуй воспользоваться библиотекой ADO. Создай ADODB.Recordset и используй его в качестве источника данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:49 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Private Sub Command1_Click() Dim rs As New ADODB.Recordset Dim con As New ADODB.Connection con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_c на это строке вылазит ошибка - не выполнена проверка подлинности With rs .ActiveConnection = con .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockBatchOptimistic .Open "SELECT * FROM [presence" & k & "]" End With ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 12:19 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
в предыдущем разобрался - синтаксис) теперь новая ошибка provider cannot be found ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 12:55 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
в итоге разобрался с подключением, пришёл к тому же самому. Народ! Не бросайте на полпути, как теперь отключить adodb? Private Sub Command1_Click() Dim rs As New ADODB.Recordset Dim con As New ADODB.Connection If Dir(path_c) <> "" Then Kill (path_c) ' вот здесь не даёт доступ With con .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_c & ";Persist Security Info=False" .Mode = adModeReadWrite .CursorLocation = adUseClient .Open End With With rs .ActiveConnection = con .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockBatchOptimistic .Open "SELECT * FROM [presence" & k & "]" End With TDBGrid1.DataSource = rs End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:26 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
Код: plaintext так а зачем ты саму базу то пытаешься удалить перед использованием? логика странная. а вообще проверь, может ты в самом акцесе эту базу открыл или процесс какой подвис. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:31 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
я там пропустил код, который копирует с фтп обновлённый файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:33 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
После работы с базой нужно сделать Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:42 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
тогда в первый раз при загрузке будет писать ошибку operation is not allowed when object is closed - понятно, потому что подключение ещё не установлено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 13:44 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
всё,разобрался. объявил con и rs публичным если кому нить понадобится: Public con As New ADODB.Connection Public rs As New ADODB.Recordset Private Sub Command1_Click() con.Close Set con = Nothing If Dir(path_c) <> "" Then Kill (path_c) 'потом идёт копирование новой базы в path_c и заново устанавливаем связь With con .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_c & ";Persist Security Info=False" .Mode = adModeReadWrite .CursorLocation = adUseClient .Open End With With rs .ActiveConnection = con .CursorLocation = adUseClient .CursorType = adOpenDynamic .LockType = adLockBatchOptimistic .Open "SELECT * FROM [presence" & k & "]" End With TDBGrid1.DataSource = rs End Sub единственное - первый запуск, как обработать его.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 14:09 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
и последнее - проверка открыто ли подключение) If con.State = 1 Then con.Close Set con = Nothing End If ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 14:26 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
разберитесь со своими коннектами к базе , где и когда они создаются и выключаются: Код: plaintext 1. перейдите на правильное описание: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 14:30 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
разобрался теперь вопрос, почему теперь при изменении в гриде значения в ячейке, значение в БД автоматически не обновляется? С какими параметрами устанавливать соединение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2009, 11:17 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
если ты используешь блокировку adLockBatchOptimistic, то в конце редактирования ты должен позаботиться сам об апдейте всех измененных записей: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2009, 13:18 |
|
||
|
помогите выгрузить из памяти adodc и recordset
|
|||
|---|---|---|---|
|
#18+
спасибо, разобрался. мне тут подсказывают создавать подключение а потом закрывать его проблема же в том, что его закрывать не в том же модуле надо а скажем по нажатию кнопки, и обработчик кнопки уже не знает как называется подключение и не закрывает его. Как я понимаю, он висит в памяти но уже без имени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2009, 14:44 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2161383]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 312ms |

| 0 / 0 |
