powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADO
7 сообщений из 7, страница 1 из 1
ADO
    #33558907
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!!!
Вразумите, пожалуйста, как этим пользоваться. Вот что я уже умею:
oConn = CREATEOBJECT("ADODB.Connection")
oConn.ConnectionString= "provider=vfpoledb.1; data source="+_pathBD
oConn.Open
А теперь хочу выполнить, например удаление:
oConn.Execute("DELETE FROM type_auto WHERE id="+ALLTRIM(STR(nTypeAuto)))
oConn.Close

Только оно ругается. Вообщем вопросик: Как в Execute передать параметр? Или надо создавать ADO.Command? Только я и там недопонимаю как передавать параметры. Понял что их надо как-то создавать (ADO.Parameters), только никак не пойму КАК?
На MSDN не ссылайтесь, пожалуйста, т.к. с английским у меня плохо.
...
Рейтинг: 0 / 0
ADO
    #33559348
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если ты работаешь из вфп с вфп"шными данными то адо тебе не нужен




так и пиши:

open database (_pathBD)
DELETE FROM type_auto WHERE id="+ALLTRIM(STR(nTypeAuto))



Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
ADO
    #33559679
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Роман НовичекКак в Execute передать параметр используй ODBC, SQLSTRINGCONNECT() и SQLEXEC(). в SQLEXEC() можно передавать параметры. лехко
...
Рейтинг: 0 / 0
ADO
    #33559683
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
PRIVATE ConnectString

ConnectString = ;
	"driver={SQL Server};" ;
	+ "server=mydbserver;" ;
	+ "uid=mylogin;" ;
	+ "pwd=mypassword;" ;
	+ "database=mydb"

TRY
	PRIVATE hConn, s, aErrors, i
	hConn = SQLSTRINGCONNECT(ConnectString)
	IF hConn <=  0 
		DIMENSION aErrors[ 1 ]
		s = "Ошибка подключения:" + CHR( 13 ) + CHR( 13 ) ;
			+ ConnectString + CHR( 13 )
		FOR i =  1  TO AERROR(aErrors)
			s = s + CHR( 13 ) + "SQL State: " + NVL(aErrors[i,  4 ], "Not available") ;
				+ IIF(ISNULL(aErrors[i,  5 ]), "", CHR( 13 ) + "#" + LTRIM(STR(aErrors[i,  5 ])) + " " + TRIM(aErrors[i,  3 ])) ;
				+ CHR( 13 )
		ENDFOR
		MESSAGEBOX(s,  16 , "Ошибка подключения: " + STR(NVL(aErrors[ 1 , 5 ],  0 ))
	ELSE
		PRIVATE cur, x, y, res
		cur = SYS( 2015 )
		x =  123 
		y = "asd"

		SQLString = ;
			"select * " ;
				+ "from " ;
					+ "mytable " ;
				+ "where " ;
					+ "mytable.mynumericfield = ?x " ;
					+ "and mytable.mycharacterfield like ?y "

		res = SQLEXEC(hConn, SQLString, cur)
		DO CASE
			CASE res <  0 
				DIMENSION aErrors[ 1 ]
				s = "Ошибка выполнения SQL-запроса:" + CHR( 13 ) + CHR( 13 ) ;
					+ SQLString + CHR( 13 )
				FOR i =  1  TO AERROR(aErrors)
					s = s + CHR( 13 ) + "SQL State: " + NVL(aErrors[i,  4 ], "Not available") ;
						+ IIF(ISNULL(aErrors[i,  5 ]), "", CHR( 13 ) + "#" + LTRIM(STR(aErrors[i,  5 ])) + " " + TRIM(aErrors[i,  3 ])) ;
						+ CHR( 13 )
				ENDFOR
				MESSAGEBOX(s,  16 , "Ошибка исполнения: " + STR(NVL(aErrors[ 1 , 5 ],  0 ))
			CASE res =  0 
				MESSAGEBOX("Запрос все еще асинхронно выполняется...")
			OTHERWISE
				MESSAGEBOX("Запрос выполнился успешно")
				IF USED(cur)
					SELECT (cur)
					BROWSE NORMAL IN WINDOW (thisform.Name) TITLE (SQLString)
					USE IN (cur)
				ELSE
					MESSAGEBOX("Сервер не вернул ни одного набора данных")
				ENDIF
		ENDCASE
	ENDIF
CATCH
	MESSAGEBOX(NVL(MESSAGE(), "Неопознанная летающая ошибка"),  16 , "Ошибка")
FINALLY
	TRY
		SQLDISCONNECT(hConn)
	CATCH
	ENDTRY
ENDTRY
...
Рейтинг: 0 / 0
ADO
    #33559875
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, огромное
...
Рейтинг: 0 / 0
ADO
    #33559907
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
PRIVATE ConnectString
....
CASE res <  0 
	DIMENSION aErrors[ 1 ]
	s = "Ошибка выполнения SQL-запроса:" + CHR( 13 ) + CHR( 13 ) ;
		+ SQLString + CHR( 13 )
	FOR i =  1  TO AERROR(aErrors)
		s = s + CHR( 13 ) + "SQL State: " + NVL(aErrors[i,  4 ], "Not available") + IIF(ISNULL(aErrors[i,  5 ]), "", CHR( 13 ) + "#" + LTRIM(STR(aErrors[i,  5 ])) + " " + TRIM(aErrors[i,  3 ])) + CHR( 13 )
	ENDFOR
ENDTRY
....

Код хорош, но я бы добавил еще анализ ошибки NVL(aErrors[5]) = 1205 - deadlocked и повторял в этом случае команду раз 10-30.
Если за 10-30 попыток deadlocked сам не "рассосался", вот тогда и выходил бы с ошибкой.
С уважением, Алексей.
...
Рейтинг: 0 / 0
ADO
    #33562068
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Роман!

> Только оно ругается.

Как ругается, на что ругается? Может у тебя пробелы в пути к базе? Или это
не база а папка со свободными таблицами? Само соединение то установилось?
Выбрать данные из этой таблицы ты можешь?
У тебя в принципе нет параметров в этом коде - ты всё сцепил в одну строку.
С параметрами работают совсем по-другому - объяснять долго, да и вряд-ли оно
тебе нужно...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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