powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / To Daymon и всем, кто может помочь
7 сообщений из 7, страница 1 из 1
To Daymon и всем, кто может помочь
    #32014439
Irina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
daymon: Ну может тогда формирование полного набора данных в ХП а затем сброс в локальную таблицу Access
Вопрос. Сформировать набор данных в ХП я смогу. А как потом эти данные из временной таблички на сервере перекинуть в локальную таблицу Access?
Извините за глупые вопросы.
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014451
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В локальной таблице Access пишете запрос к серверу на вызов процедуры, формирующей данные, затем инсертите его в новую или уже существующую таблицу.
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014453
Irina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А, если вам нетрудно, напишите пожалуйста синтаксис такого запроса...
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014466
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например:

******************************************************************************
Dim db As Database
Dim qr As QueryDef
Dim qd As QueryDef
Dim s_log As String

If MsgBox("Импортировать данные?", vbYesNoCancel, "Ожидание...") = vbYes Then

DoCmd.SetWarnings False
'Очистка таблицы от старых данных
DoCmd.RunSQL "delete from temp_table"
DoCmd.SetWarnings True

'Формирование подключения к серверу (функция описана ниже)
s_log = st_serv()

Set db = CurrentDb()
'Удаление уже существующего запроса к серверу - можно сделать иначе
For Each qd In db.QueryDefs
If qd.name = "slg_ost" Then
DoCmd.DeleteObject acQuery, qd.name
Exit For
End If
Next qd

'Формирование запроса к серверу на вызов ХП
Set qr = db.CreateQueryDef("slg_ost")
With qr
.connect = s_log
.SQL = "exec sel_ost_tatok @usl=" & usl
DoCmd.SetWarnings False

'Закачка данных в таблицу
DoCmd.RunSQL "INSERT INTO temp_table SELECT * FROM slg_ost"
DoCmd.SetWarnings True
.Close
End With
Set qr = Nothing
'db.QueryDefs.Delete "slg_ost"
Me.Requery
DoCmd.SetWarnings True
End If
*********************************************************************************
Функция формирования строки подключения к серверу через ODBC:
Public Function st_serv() As String
Dim db As Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Dim st_dsn As String
st_dsn = "ODBC"
st_dsn = st_dsn & ";UID=" & User()
st_dsn = st_dsn & ";PWD=" & password() & ";DSN=" & dsn()
st_dsn = st_dsn & ";SERVER=" & server()
st_dsn = st_dsn & ";USE_TRUSTED_CONNECTION=YES"
rs.Close
Set rs = Nothing
Set db = Nothing
st_serv = st_dsn
End Function
**************************************************************************
Функции user() и т.д. возвращают текущего пользователя и т.д
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014468
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Примечание - функции user() и т.д. также пользовательские. Вы можете вместо них набить строковые идентификаторы. Либо использовать подключение напрямую:
Public Function st_serv_1() As String
Dim db As Database
Dim rs As DAO.Recordset
Dim st_dsn As String
Set db = CurrentDb()
st_dsn = "DRIVER={sql server}; SERVER=" & server()
st_dsn = st_dsn & "; database=" & Database()
st_dsn = st_dsn & "; UID=" & User()
st_dsn = st_dsn & "; pwd=" & password()
st_serv_1 = st_dsn
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
st_dsn = ""
End Function

Успехов
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014470
Irina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное Вам спасибо... Все заработало. Еще раз спасибо. Не представляю, что бы я делала без Вашей помощи.
...
Рейтинг: 0 / 0
To Daymon и всем, кто может помочь
    #32014522
AlexUnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вдогонку ко всему сказанному. Обязательно проверьте принимающую таблицу Access на соответствие структуры с таблицей SQL Server. Допустим, если Вы ненароком оставите свойство поля таблицы "Пустые строки" в положении "Нет" (запрет ввода пустых строк), при этом реально на SQL Server это поле будет допускать ввод пустоты, то данная строка может просто не импортироваться Ну и так далее. Если будете отправлять файл MDB по электронной почте - обязательно сжимайте и упаковывайте его. Лучше всего это тоже делать программно. У меня клиентская программа после закачки данных в отдельный файл производит его сжатие и упаковку, затем подключает Outlook, формирует сообщение и пихает созданный файл в виде вложения
Еще раз успехов!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / To Daymon и всем, кто может помочь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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