powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не удаляются таблицы из локальной БД
11 сообщений из 11, страница 1 из 1
Не удаляются таблицы из локальной БД
    #32511329
Ushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не удаляются таблицы из локальной БД,
error 3211
The database engine couldn't lock 'p6' because it's already in use by another person or process

базу делал в аксесе, доступ монопольный, таблицы делаются и добавляются програмно, dbDB.TableDefs.Append tbTable,
удалить пытаюсь - dbDB.TableDefs.Delete strID
связей с другими таблицами нет,
в программе есть 3 Data, все к одной базе, подсоединял их в пропертях, пробовал двоих убивать, одно и то же
с открытием-закрытием dbDB вроде все правильно, пробовал разные Ws(), проходит только (0), даты используют (1)

"другие пользователи или процесы" могут быть только в программе
что бы абстрагироваться сделал макет программы - две кнопки "создать" и "удалить", с теми же процедурами и одной Data + таблица + грид, базу снова в аксесе.
Результат: все прекрасно создается и удаляется, правда есть глюк: имя таблицы делается как "p" & Cstr(j), а в базе прописывается как pp2, откуда то второе 'p', даже когда "" & Cstr(j) или просто
Cstr(j) - все равно p2 ??? ну это мне пополам, а вот с удалением ...

Похоже. что "все очень просто" но не догоню, не программист, подскажите плиз
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511343
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код в студию плиз. Поглядим.

Magnus
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511470
Ushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про Ws() загнул, метод Count просто показал их количество
Подскажите где рыть, вот обрезки кода:
Для всех Data 1...3 :
Connect = "Access"
DatabaseName = "D:\...\15402Prob.mdb"
DefaultType = 2 'UseODBC
Exclusive = -1 'True
Options = 0
ReadOnly = 0 'False
RecordsetType = 1 'Dynaset

Для Data1 - RecordSource = "Oborud"
Для Data2 и Data3 - RecordSource = ""

При Load формы окрывается dbDB для создания и удаления таблиц в процессе работы:
Set dbDB = OpenDatabase(strDBPath, True, False)

Создание таблицы, все "по руководствам для начинающих "
Public Sub CreatTablePoz(strID As String, dbDB As Database)
Dim tbTable As TableDef
Dim strName As String
Dim F1 As Field, F2 As Field, F3 As Field, F4 As Field
Dim Idx1 As Index
strName = "p" & strID
Set tbTable = dbDB.CreateTableDef(strName)
... и так далее ....
tbTable.Indexes.Append Idx1
dbDB.TableDefs.Append tbTable
End Sub
таблица получается рабочая, dbDB в программе нигде не закрывается
вот место где возникает ошибка в процедуре удаления таблицы

... перепись столбца из удаляемой таблицы в отстойник - таблицу DelPoz
strID = "p" & strID
Data2.RecordSource = "SELECT Handl FROM " & strID & ";"
Data2.Refresh
If Data2.Recordset.EOF = False Then
Data3.RecordSource = "SELECT * FROM DelPoz;"
Data3.Refresh
Do While Data2.Recordset.EOF = False
Data3.Recordset.AddNew
Data3.Recordset("Handl") = Data2.Recordset("Handl")
Data3.Recordset.Update
Data2.Recordset.MoveNext
Loop
End If 'предыдущий код нормально работает, а дальше последняя версия мыслей
Data1.Recordset.Close
Data2.Recordset.Close
'Data3.Recordset.Close если эту строку разремить,
то на ней возникает ошибка '91', может здесь собака порылась?
dbDB.TableDefs.Delete strID ' наэтой строке все и заканчивается - '3211' strID="p6"
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511562
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока не разобрался в чем проблема.
Копироние записей лучше делать так.


Код: plaintext
1.
2.
3.
4.
5.
6.
Dim cn as ADODB.Connection
set cn= new ADODB.Connection

cn.OPen "Тут подсоеденяйся к своей базе"

cn.Execute "Inseret into DelPoz  SELECT Handl FROM " & strID & ";"
cn.close



Magnus
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511594
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Магнус, не путай человека. Он работает через DAO , а не ADO.
И вообще , этот вопрос лучше задать в форуме по Access
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511606
Ushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAO выбрал с начала т.к. мне он показался менее трудоемким (VB юзаю 3 недели), да и + DBGrid + база локальная. Сейчас сунулся в ADO, там для меня сложновато. Проблему решу и так, просто не буду удалять базы, пусть висят, но вот скажите можно ли вышеуказанный метод Execute или SQL запрос типа "Inseret into SELECT FROM ;" как то применить с DAO
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511649
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 (c)VIG
При всем ужажении :), человек еще ничего не юзает, он и сам запутается , без нас. Я как раз пытаюсь на верный(ИМХО) путь направить.

Модель АДО гораздо проще ДАО. И работать с ним проще. И лучше. И быстрее.
И вообще. :)

А проблема как раз очень смахивает на незабитые обьекты. Тут вообще всю модель менять надо.

ИМХО если человек только начинает то стоит это делать с АДО а не ДАО.

Кстати, тексты ошибок можно озвучить? 91 - догадываюсь, а вторую не помню.


Magnus
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511658
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Magnus23
Код был с использованием DAO ,а ты без всяких предисловий -сразу cn.Execute :)

То что ADO лучше ,тут спору нет .Я сам уже лет 5 как DAO не использую , многих нюансов уже не помню ,поэтому и посоветовал обратиться в форум по Access
ЗЫ А что это за новая команда "INSERET " ? Что-то я такой не помню :)
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511661
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня, когда баловался акцесс, такая ошибка выскакивала, если не было прав на создание *.ldb файла на расшаренном ресурсе, где лежала сама база.
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511671
Ushi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, спасибо за внимание, я сам уже понял, что БД надо было делать програмно для полного контроля и непеняния на аксес и использовать ADO как более универсальное. Просто я все делаю как инженер, т.е. сначала быстренько долепливаю макет проекта до конца, хоть с г.., и абы как, потом гляжу что получилось и уже с чувством с толком с расстановкой переделываю. Тему закрываю, т.к. проблемы уже нет - перелепил с того что есть.
Когда буду переделывать буду спрашивать.
...
Рейтинг: 0 / 0
Не удаляются таблицы из локальной БД
    #32511856
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(c)VIG
ЗЫ А что это за новая команда "INSERET " ? Что-то я такой не помню :)
Это новая модификация, Insert для блекушников слушающих Nazareth :)

Я это, хотел как лучше :). 5 лет назад и слова-то такого "ADO" не знал :)

Magnus
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не удаляются таблицы из локальной БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]