![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка Index not found ? при попытке update dBase [D6, dBase, FoxPro]
MV-GROB © (2003-10-09 19:02:00)
Госпада, кто нибудь сталкивался с Index not found. при попытке update dBase ? (ADODB.Connection, Microsoft.Jet.OLEDB.4.0)?
Вот код
<%
Dim dsn, conn, type_db,sSQL,RS
Set conn = Server.CreateObject("ADODB.Connection")
conn.CommandTimeout = 30
conn.ConnectionTimeout = 20
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Properties("Extended Properties") ="dBase IV" conn.Properties("Data Source") = Server.Mappath("../Basa/")
conn.Open
set dbCmdCat = Server.CreateObject("ADODB.Command")
dbCmdCat.ActiveConnection = conn
Set RS = Server.CreateObject("ADODB.Recordset")
sSQL="Select * From Sc33"
RS.Open sSQL, Conn
idd=""
If (Not(RS.EOF))and(Not(RS.BOF)) Then
RS.MoveFirst()
for i=0 to RS.Fields.Count-1
Response.Write "<br>"
Response.Write RS.fields(i).Value
Response.Write "<br>"
Next
idd=RS.fields("ID").Value
End If
RS.Close
sSQL="Update Sc33 set DESCR="DESCR" WHERE ID=""+idd+"";"
dbCmdCat.CommandText = sSQL
RS = dbCmdCat.Execute()
Set RS = Nothing
Conn.Close
Set Conn = Nothing
Select работает
MV-GROB (2003-10-13 19:49:00) [1]
олпдолрлдо
MV-GROB (2003-10-10 14:02:00) [2]sniknik © (10.10.03 12:07) [13]
БОЛЬШОУЕ СПАСИБУО ТАВАРИЩ
Все заработало с таким текстом
Текст побключения к dBase dbf (1C) Для выполнения
Update ... (изменений)
----------------------------------------
Dim dsn, conn, type_db,sSQL,RS
Set conn = Server.CreateObject("ADODB.Connection")
conn.CommandTimeout = 30
conn.ConnectionTimeout = 20
cnct="Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DRIVER={Microsoft Visual FoxPro Driver};UID=;SourceDB=" & Server.Mappath("../Basa/") & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=RUSSIAN;Null=Yes;Deleted=Yes;"
conn.Open cnct
set dbCmdCat = Server.CreateObject("ADODB.Command")
dbCmdCat.ActiveConnection = conn
Set RS = Server.CreateObject("ADODB.Recordset")
-------------------------------Select
sSQL="Select * From Sc33"
RS.Open sSQL, Conn
idd=""
If (Not(RS.EOF))and(Not(RS.BOF)) Then
RS.MoveFirst()
for i=0 to RS.Fields.Count-1
Response.Write "
"
Response.Write RS.fields(i).Value
Response.Write "
"
Next
idd=RS.fields("ID").Value
End If
RS.Close
-------------------------------Update
sSQL="Update Sc33 set DESCR="DESCR" WHERE ID=""+idd+"";"
dbCmdCat.CommandText = sSQL
RS = dbCmdCat.Execute()
Set RS = Nothing
Conn.Close
Set Conn = Nothing
-----------------------------------------
sniknik (2003-10-10 12:07:00) [3]
строка подключения VFP в дельфях задается так
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Microsoft Visual FoxPro Driver};UID=;SourceDB=d:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=RUSSIAN;Null=Yes;Deleted=Yes;"
как в бейсике ХЗ (у тебя и jet смотрю както странно задеется, не так), ну разберешся думаю.
sniknik (2003-10-10 12:07:00) [4]
MV-GROB © (10.10.03 12:06) [12]
ага он самый.
MV-GROB (2003-10-10 12:06:00) [5]
sniknik © (10.10.03 12:02) [11]
"jet на ODBC VFP driver"
Не понял VFP - это что? (visual foxpro что ли)
sniknik (2003-10-10 12:02:00) [6]
MV-GROB © (10.10.03 11:47) [8]
> Не какое не "бредовое предположение" 1С и есть и про "CDX вместо MDX" я в курсе
ну так, догадатся то одному названию таблици, сложновато было. (ты всегда пиши что 1С, это такая спецефическая вещь, лишней информация не будет)
MV-GROB © (10.10.03 11:49) [9]
> МОЖНО ЛИ ИНДЕКС ЗАДАТЬ ЯВНО
только не в этом случае
> Что делать то?
я бы посоветовал переключится с jet на ODBC VFP driver, для 1С самое то.
LordOfSilence (2003-10-10 11:57:00) [7]
Вариант № 1: Delphi + Codebase
Вариант № 2: Что хочешь + MSSQL
MV-GROB (2003-10-10 11:49:00) [8]
МОЖНО ЛИ ИНДЕКС ЗАДАТЬ ЯВНО
MV-GROB (2003-10-10 11:47:00) [9]
sniknik © (10.10.03 11:40) [7]
Не какое не "бредовое предположение" 1С и есть и про "CDX вместо MDX" я в курсе
Что делать то?
А "там признак индексированности в таблице стоит " - означает что
если через индекс работать не надо (select) то проверяется этот признак, а запись уже ищет сам файл ?
sniknik (2003-10-10 11:40:00) [10]
ну тогда не знаю в чем может быть дело.
последняя попытка,
тут разбирался с одним запросом (на BDE гороздо быстрее чем адо, и почему), запрос на jet + dBase III, индекс *.NTX работает одинаково долго что с ним что без него. после переноса базы в access ситуация поменялась.
о чем это я, да есть подозрение что jet ntx индексы просто не видит. у тебя не такие?
хотя конечно такому Update индекс совсем не нужен.
ну и еще вариант (бредовое предположение, но всеже)
Update Sc33set DESCR="DESCR" WHERE ID=""+idd+""
имя таблицы напоминает сравочник 1С (????), нет? просто если это 1С то правильно не видит, там признак индексированности в таблице стоит а индекс CDX вместо MDX.
MV-GROB (2003-10-10 11:19:00) [11]
sniknik © (09.10.03 21:14) [5]
Апдатил
sniknik (2003-10-09 21:14:00) [12]
а посмотри еще, BDE то встал? BDE administrator появился.
> провайдеров менял, и драва
jet? апдейтил?
MV-GROB (2003-10-09 19:28:00) [13]
НЕТ . сегодня вес день промучился, и провайдеров менял, и драва, еще немного ... реестр ковырять начну (
sniknik (2003-10-09 19:26:00) [14]
> 2.На счет BDE я понял - вчера скачал и поставил BDE 5,1,1
ну а помогло?
MV-GROB (2003-10-09 19:23:00) [15]
sniknik
1.Да индекс есть , в томто и дело
Индех есть, он его видит (если удалить индекс он и select не делает сразу Index not found)
2.На счет BDE я понял - вчера скачал и поставил BDE 5,1,1
3. Дельфи вещь хорошая, но только (как и бейсик) при решении определенных задач
sniknik (2003-10-09 19:15:00) [16]
пара дополнительных вопросов
1: а индекс есть?
2: (очень важный, хотя может показатся не в тему) BDE стоит? на той машине где это выдает.
3: бейсик на дельфи поменять не хочеш? (просто спросил ;о))