Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск процедуры SQL в Access / 7 сообщений из 7, страница 1 из 1
24.04.2018, 15:53
    #39635492
Tishh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
В SQL создана процедура "proc_import_csv_to_SQL"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
USE [IMPORTDAT]
GO
/****** Object:  StoredProcedure [dbo].[proc_import_csv_to_SQL]    Script Date: 4/24/2018 4:44:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_import_csv_to_SQL]
AS
GO
DELETE FROM csv1
BULK INSERT csv1 FROM 'D:\DDD\csv1.csv'
   WITH (
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
);
GO



При нажатии на кнопку в Access, хотелось бы запустить эту процедуру на выполнение. Не могли бы ли вы мне подсказать, как этол можно осуществить?
...
Рейтинг: 0 / 0
24.04.2018, 16:04
    #39635499
Tishh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
В Access создан запрос: sproc_import_csv_to_SQL

С текстом: Exec proc_import_csv_to_SQL

И когда пускаю на выполнение, то в SQL портит процедуру и оставляет только:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
USE [IMPORTDAT]
GO
/****** Object:  StoredProcedure [dbo].[proc_import_csv_to_SQL]    Script Date: 4/24/2018 5:03:37 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_import_csv_to_SQL]
AS
...
Рейтинг: 0 / 0
24.04.2018, 17:44
    #39635554
Tishh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
Задача заключается в том, чтобы пользователь имел бы возможность загружать данные файла формата csv в таблицу csv1 , созданную в SQL, предварительно очищая эту таблицу от старых данных.

Правильно ли я поступаю, что создаю процедуру с командами (указано выше) в SQL и получится ли использовать эту процедуру, запуская ее из Access интерфейса? Использую ДАО.

Сам файл csv на пользовательском компьютере должен быть расположен.

Сейчас пытаюсь пока на сервере всё решить, вот только пока не получается.
...
Рейтинг: 0 / 0
25.04.2018, 07:41
    #39635773
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
TishhВ SQL создана процедура "proc_import_csv_to_SQL"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
USE [IMPORTDAT]
GO
/****** Object:  StoredProcedure [dbo].[proc_import_csv_to_SQL]    Script Date: 4/24/2018 4:44:39 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_import_csv_to_SQL]
AS
GO -- А это зачем?
DELETE FROM csv1
BULK INSERT csv1 FROM 'D:\DDD\csv1.csv'
   WITH (
      FIELDTERMINATOR = ',',
      ROWTERMINATOR = '\n'
);
GO



При нажатии на кнопку в Access, хотелось бы запустить эту процедуру на выполнение. Не могли бы ли вы мне подсказать, как этол можно осуществить?

У Вас лишний "GO" в тексте процедуры. У Вас процедура как бы сама отдельно и начиная с "DELETE ..." отдельный скрипт.
...
Рейтинг: 0 / 0
25.04.2018, 07:48
    #39635778
studieren
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
Tishh,

И ещё. Как Вы запускаете процедуру в MS Access? По хорошему запросом к серверу необходимо запускать.
...
Рейтинг: 0 / 0
25.04.2018, 08:14
    #39635792
Tishh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
studieren,

У меня получилось сделать импорт, процедуру разделила на 2 части.

А запускаю таким образом:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public p As String

Private Sub cmd_import_Click()
    p = "proc_import_csv_to_SQL_1"
        Call PROC("sproc_import_csv_to_SQL_1", p, 0)
    MsgBox "111"
    p = "proc_import_csv_to_SQL_2"
        Call PROC("sproc_import_csv_to_SQL_2", p, 0)
End Sub

Function PROC(p1, p2, k)
Set dbsReport = CurrentDb
Set qdf = dbsReport.QueryDefs(p1)
qdf.SQL = "EXEC " & p2
If k = 0 Then
    qdf.ReturnsRecords = False
    qdf.Execute dbFailOnError
Else
    qdf.ReturnsRecords = True
End If
End Function
...
Рейтинг: 0 / 0
25.04.2018, 08:15
    #39635794
Tishh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск процедуры SQL в Access
studieren,

Спасибо огромное!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запуск процедуры SQL в Access / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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