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


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


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

--
Regards
Alexander Artamonov

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



--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
28.10.2004, 17:49:43
    #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
28.10.2004, 18:13:25
    #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
29.10.2004, 09:40:53
    #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
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / временные таблицы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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