powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / временные таблицы
9 сообщений из 9, страница 1 из 1
временные таблицы
    #32759820
Фотография GeorgeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая задача:
в Ms Access 2002 создать аналог временных таблиц SQL сервера. На базе них форму. При этом размер БД от них зависеть не должен.
Вариант с назначением форме динамического рекордсета не выходит.
...
Рейтинг: 0 / 0
временные таблицы
    #32759829
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача - как задача.
а в чём собстаенно проблема?


автор
При этом размер БД от них зависеть не должен.


а вот это врядли получится :)
...
Рейтинг: 0 / 0
временные таблицы
    #32759878
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в отдельной временной базе создавать временные таблицы
...
Рейтинг: 0 / 0
временные таблицы
    #32759891
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, я чего-то не понимаю. А чем запросы типа Select плохи? База от них
пухнуть не должна. Или я не прав?

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
временные таблицы
    #32759901
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну есть наверно разница между запросом и таблицей :)
...
Рейтинг: 0 / 0
временные таблицы
    #32759929
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотря для каких целей :-)
Может формам, для которых это нужно, и без разницы.



--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
временные таблицы
    #32759935
Фотография GeorgeS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже вроде намётки есть...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Const str_tmpdb_path = "c:\~tmp_data.mdb"
Private Sub Form_Load()
    Dim cat As New ADOX.Catalog
    cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & str_tmpdb_path
    Dim tbl As New ADOX.Table
    tbl.name = "tmp"
    tbl.Columns.Append "ID", adInteger
    tbl.Columns.Append "name", adVarWChar,  32 
    cat.Tables.Append tbl
    Me.RecordSource = "SELECT [id], [name] FROM [tmp] IN '" & str_tmpdb_path & "'"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Kill str_tmpdb_path
End Sub
...
Рейтинг: 0 / 0
временные таблицы
    #32759979
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Declare Function GetTempFileName_ Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpPathName As String, ByVal lpPrefixString As String, ByVal uUnique As Long, ByVal lpTempFileName As String) As Long
Declare Function GetTempPath_ Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Function GetTempPath()
    Dim s As String, rc As Long
    s = Space(MAX_PATH)
    rc = GetTempPath_(MAX_PATH, s)
    If rc >  0  Then
        GetTempPath = Left(s, rc)
    Else
        GetTempPath = ""
    End If
End Function

Function GetTempFileName(ByVal lpPathName As String, ByVal lpPrefixString As String, ByVal uUnique As Long, lpTempFileName As String) As Long
    Dim s As String, rc As Long
    s = Space(MAX_PATH)
    rc = GetTempFileName_(lpPathName, lpPrefixString, uUnique, s)
    If rc <>  0  Then
        lpTempFileName = Left(s, InStr(s, vbNullChar) -  1 )
        GetTempFileName = rc
    Else
        lpTempFileName = ""
        GetTempFileName =  0 
    End If
End Function

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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Option Compare Database
Option Explicit

Private Const str_tmpdb_path = "~tmp_data.mdb"
Private Tfile

Private Sub Form_Load()
Dim fso, tfolder
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table

'Определяем путь к папке верменных файлов
Set fso = CreateObject("Scripting.FileSystemObject")
Set tfolder = fso.GetSpecialFolder( 2 )
    Tfile = tfolder & str_tmpdb_path
If Dir(Tfile) <> "" Then Kill Tfile

    cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Tfile
    tbl.Name = "tmp"
    tbl.Columns.Append "ID", adInteger
    tbl.Columns.Append "name", adVarWChar,  32 
    cat.Tables.Append tbl
    Me.RecordSource = "SELECT [id], [name] FROM [tmp] IN '" & Tfile & "'"
End Sub

Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
    Me.RecordSource = ""
    Kill Tfile
End Sub

- удаляет файл если мало ли что при загрузке
- хорошая мысль держать временный файл во временной папке, тока это можно сделать проще
-источник данных для формы надо отключить при выходе ибо файл будет не удалить
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / временные таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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