ils108
25.04.17 — 12:06
Добра всем! Подключаюсь к базе следующим образом.
ConnectionString = «» +
«Driver={Driver do Microsoft Paradox (*.db )};» +
«DriverId=538; FIL=Paradox 5.X; » +
«PWD=» + Пароль + «;» +
«DefaultDir=» + КаталогФайла + «; DBQ=» + КаталогФайла + «;» +
«DataCodePage=ASCII»;
cn = Новый COMОбъект(«ADODB.Connection»);
cn.Open(ConnectionString);
ТекстЗапроса = «Select * from » + ИмяФайла;
rs = Новый COMОбъект(«ADODB.Recordset»);
rs.Open(ТекстЗапроса, cn);
Выскакивает следующая ошибка
{Обработка.ЗагрузкаИзRKeeper.МодульОбъекта(243)}: Ошибка при вызове метода контекста (Open)
cn.Open(ConnectionString);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
ils108
1 — 25.04.17 — 13:06
http://shot.qip.ru/00Tn5Q-418qb6UGi/
драйвер есть, он x32, кто-то знает как его использовать или где взять для x64 версии?
ils108
2 — 08.05.17 — 10:28
ап
ils108
3 — 11.05.17 — 07:41
Подскажите, что в данном случае выступает как источник данных? и где указать драйвер по умолчанию
МихаилМ
4 — 11.05.17 — 08:12
ils108
5 — 11.05.17 — 08:40
(4) Михаил, можете пояснить?
МихаилМ
6 — 11.05.17 — 08:58
ils108
7 — 11.05.17 — 10:15
с другой стороны клиент 1С же x32? и по идее драйвер как раз и должен быть x32 независимо от того, что винда x64?
МихаилМ
8 — 11.05.17 — 10:27
ils108
9 — 11.05.17 — 10:43
(8) у меня файловая версия, не серверная
МихаилМ
10 — 11.05.17 — 10:51
(9) не важно . читайте всю ветку.
ils108
11 — 11.05.17 — 12:23
скурил все эти ссылки, но так и взлетает.
когда пытаюсь протестить через udl
http://shot.qip.ru/00TvW3-6f35S7oPa/
ils108
12 — 11.05.17 — 12:26
(10) через Viewer получилось открыть, но все равно непонятно как из 1Ски подключаться
ils108
13 — 11.05.17 — 12:30
ils108
14 — 11.05.17 — 12:56
Михаил, выручайте, судя по всему больше никто не зашарил этот момент
МихаилМ
15 — 11.05.17 — 13:51
добавьте к «Driver={Driver do Microsoft Paradox (*.db )};»
строку из ViewODBC.html
ils108
16 — 11.05.17 — 14:13
(15) попробовал, такая же ошибка
Fragster
17 — 11.05.17 — 14:15
создать пустой файл .udl, открыть двойным кликом, настроить подключение, сохранить, открыть блокнотом
ils108
18 — 11.05.17 — 14:17
(17) хорошая идея, но есть ограничение связанное с тем, что там нет нужного драйвера
Fragster
19 — 11.05.17 — 14:18
(18) так поставь его
ils108
20 — 11.05.17 — 14:22
(19) нет такого драйвера для x64, да и зачем он если 1Ска x32?
ils108
21 — 11.05.17 — 14:30
АДО = Новый COMОбъект(«ADODB.Connection»);
АДО.ConnectionString = «Provider=MSDASQL;UID=ODBC;DSN=Personal»;
АДО.ConnectionTimeout = 0;
АДО.Open();
попробовал цепануться через созданное подключение, ругается на разные архитектуры
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу.
Fragster
22 — 11.05.17 — 14:53
ils108
23 — 11.05.17 — 15:00
так, немного сдвинулся, оказалось, что 1Ску накатил x64. Переставил, получается теперь подключиться, но
}: Ошибка при вызове метода контекста (Open)
rs.Open(ТекстЗапроса, cn);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Paradox] Внешняя таблица не имеет предполагаемый формат.
ils108
24 — 11.05.17 — 15:08
таблица .DB естественно
МихаилМ
25 — 11.05.17 — 15:11
(24)
если в ViewODBC таблица читается, то в 1с читается.
иначе ищите другой драйвер
ils108
26 — 11.05.17 — 15:17
(25) таблица отображается, но не открывается
http://shot.qip.ru/00TvW3-2f35S7oPl
МихаилМ
27 — 11.05.17 — 15:20
ils108
28 — 12.05.17 — 07:23
Залейте пожалуйста драйвер или подскажите ссылку, не могу нашарить в интернете почему-то
ils108
29 — 12.05.17 — 07:55
они в файлике odbcjt32.dll лежат
Бертыш
30 — 12.05.17 — 17:08
У меня родственная проблема. Только у меня вылетает на уровне
Новый COMОбъект(«ADODB.Connection»);
Franchiser
31 — 12.05.17 — 17:28
Драйвер настроен через х32 оснастку?
МихаилМ
32 — 12.05.17 — 18:33
(28)
выкладывайте файл-таблицу из бд.
чтобы подобрать драйвер
ils108
33 — 16.05.17 — 09:21
(31) [url=http://www.fayloobmennik.net/6989928]Categ.db[/url]
залил табличку.
у меня вышло очень странным образом на данный момент.
// цепляемся через пользовательский DSN
_АДО = Новый COMОбъект(«ADODB.Connection»);
_АДО.ConnectionString = «Provider=MSDASQL;UID=ODBC;DSN=Para»;
_АДО.ConnectionTimeout = 0;
_АДО.Open();
ConnectionString = «» +
«CollatingSequence=ASCII;DefaultDir=F:1srkeeperRK7 — DB;Driver={Driver do Microsoft Paradox (*.db )};DriverId=538;FIL=Paradox 5.X;FILEDSN=F:1srkeeperRK7 — DBParadox.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ParadoxNetPath=C:WINDOWSsystem32;ParadoxNetStyle=4.x;ParadoxUserName=admin;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;DataCodePage=ASCII;»;
т.е. сначала загружаем DSN, потом подключаюсь по строке. Файлы в таком случае читает, но там кракозябры
ils108
34 — 16.05.17 — 09:22
ils108
35 — 16.05.17 — 09:22
(31) пробовал и так и так
ils108
36 — 16.05.17 — 10:24
на данный момент пришел к загрузке
ConnectionString = «» + «Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=» +
ТестКаталог + «;Dbq=» +ТестКаталог+ «;CollatingSequence=ASCII;»;
cn = Новый COMОбъект(«ADODB.Connection»);
cn.Open(ConnectionString);
ТекстЗапроса = «Select * from » + ИмяФайла;
rs = Новый COMОбъект(«ADODB.Recordset»);
rs.Open(ТекстЗапроса, cn);
и т.д.
данные загружает, но там кракозябры (
ils108
37 — 16.05.17 — 10:30
ils108
38 — 16.05.17 — 10:33
через Paradox Data Editor смотрю — данные в норме.
через ODBC Viewer — кракозябры
Вафель
39 — 16.05.17 — 10:35
кодировка не та
ils108
40 — 16.05.17 — 10:39
(39) согласен =)
не могу понять как настроить
ils108
41 — 17.05.17 — 12:49
ils108
42 — 17.05.17 — 14:02
ап
Добрый день, уважаемые Знатоки!
Меня заинтересовала возможность подключения 1С к сторонней базе данных посредством ADO.
В частности у меня 1С 8.1 и база MS SQL server 2005.
С получением данных проблем не возникает, да и с редактированием и удалением тоже. Во всех этих случаях я составлял запрос в Connection.Execute.
Но я вычитал в книжке «!С: ПРЕДПРИЯТИЕ 7.7/8.0 системное программирование», что можно удалить текущую запись и оператором Delete.
Подскажите, пожалуйста, что я делаю не правильно. Я думаю, что причина в используемом провайдере.
Текст обработки:
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionTimeOut =600;
Connection.CursorLocation = 3;
Connection.Open("Provider=SQLOLEDB;Password=955938;Data Source=andrey;Persist Security Info=True;User ID=user_1c;Initial Catalog=sait");
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText ="select * from nomenclature";
Command.CommandType = 1;
RecordSet = Новый ComОбъект("ADODB.RecordSet");
RecordSet.CursorType = 3;
RecordSet.LockType = 2;
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
RecordSet.Delete(1);
RecordSet.MoveNext();
КонецЦикла;
Выдается ошибка:
Ошибка при вызове метода контекста (Delete): Произошла исключительная ситуация (ADODB.Recordset): Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
RecordSet.Delete();
В форме прописываю процедуру для добавления подключения к баз данных access, но последняя не подключается.
Использую среду разработки Delphi XE7.
procedure TfMain.FormCreate(Sender: TObject);
begin
GetDir(0, DIR);
try
fDM.ADOConnection1.LoginPrompt := False;
fDM.ADOConnection1.Connected := False;
fDM.ADOConnection1.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;' + 'Data Source=' + DIR +'/DB/DB.mdb;' + 'Persist Security Info=False;';
fDM.ADOConnection1.Connected := True;
except
MessageBox(Handle,'Произошла ошибка при подключении к базе данных!','Ошибка!',MB_ICONERROR + MB_OK);
Application.Terminate;
end;
end;
Не могу понять в чем ошибка… Помогите советом добрым
p.s.: в Data Module Create процедура срабатывает и база подключается. А почему через главную форму нет?
-
Вопрос заданболее трёх лет назад
-
165 просмотров
Data Module Create процедура срабатывает и база подключается. А почему через главную форму нет?
Если fDM
ещё не создан, то нельзя его использовать.
Пригласить эксперта
Обычно, чтобы понять в чем ошибка, смотрят, как минимум, текст сообщения возникшего исключения, а то и его класс. А не делают «Ой!» и «Application.Terminate».
Как-то так, например:
except
on E: Exception do
begin
MessageBox(Handle,
'Произошла ошибка при подключении к базе данных!' + sLineBreak
+ E.ClassName + ': ' + E.Message,
'Ошибка!',
MB_ICONERROR + MB_OK);
Application.Terminate;
end;
end;
Ответ на ваш вопрос вам уже написали.
-
Показать ещё
Загружается…
30 янв. 2023, в 13:52
120000 руб./за проект
30 янв. 2023, в 13:45
500 руб./за проект
30 янв. 2023, в 13:36
100000 руб./за проект
Минуточку внимания
Добрый день, всем.
Буду признателен за советы, мысли, как решить неожиданно возникшую проблему с 1С 8.3. Имеем 1С 8.3.5.15.17, через MSSQL2008, MSOffice 2007. Всё лицензионное.
Недавно перешли с 8.2 на 8.3 . До переход использовалась специальная процедура: записать в file MSAccess2007 некоторую информацию, выглядело это так:
1C | ||
|
И всё работало на ура без всяких проблем.
После перехода на 8.3 столкнулся с проблемою, что Open не даёт соединения — просто упорно выдаёт ошибку.
Ошибка подключения к Access: {ОбщийМодуль.АС_ОСЧ.Модуль(212)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Access Database Engine): ‘E:MyDBMyFile.accDB’ is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Ошибки на создания ComObject нет. Появляется на любой машине с любыми правами.
Естественно (для тестов) диск Е взят локальный (не сетевой) к базе вообще (MyFile.accDB) вообще никто не подключен; запускается от имени администратора — т.е. все полные права. Если взять запустить через WIndows->RUN «E:MyDBMyFile.accDB», то всё открывается, всё видно. Для тестов вообщен сделал E:MyDBMyFile.accDB как простой file без каких-либо ограничений.
Пробовал совершенно разные варианты команды «СтрокаПодключения» в различных исполнениях — ничего, всё в одном и том же: не открвает accDB никак.
Пробовал установить с Microsoft’а «AccessDatabaseEngine» — не помогает.
Самое интересное… При этом код
1C | ||
|
работает успешно.
Большое спасибо за комментарии.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
I keep getting an error when trying to open a database using an ADO connection in VBA — I am getting the following error:
Run-time error ‘-2147467259 (80004005)’:
Method ‘Open’ of object ‘_Recordset’ failed
I have checked an re-checked all of my file paths and syntax, and cannot find what is wrong with the code below — can anyone help?
Public Sub PlainTextQuery()
Dim rsData As ADODB.Recordset
Dim sConnect As String
Dim sSQL As String
Dim sCusip As String
sCusip = Trim(Range("cusip").Value)
' Create the connection string
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=C:UsersinternDocumentsNewStuffResiOffers_v1.accdb;"
' Create the SQL statement
sSQL = "SELECT Date, Cusip, Bond, OF, CF, Dealer, Price, Matcher, DayCount, MktValue " & _
"FROM ResiOffersColor " & _
"WHERE Cusip = 16163HAE1 " & _
"ORDER BY Date;"
' Create the recordset object and run the query
Set rsData = New ADODB.Recordset
rsData.Open sSQL, sConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
' Make sure we get records back
If Not rsData.EOF Then
' Dump the contents onto the worksheet
Sheet2.Range("A2").CopyFromRecordset rsData
' Close the recordset object
rsData.Close
Else
' Close the recordset object
rsData.Close
MsgBox "Error: No records returned.", vbCritical
End If
' Destroy the recordset object
Set rsData = Nothing
End Sub
I keep getting an error when trying to open a database using an ADO connection in VBA — I am getting the following error:
Run-time error ‘-2147467259 (80004005)’:
Method ‘Open’ of object ‘_Recordset’ failed
I have checked an re-checked all of my file paths and syntax, and cannot find what is wrong with the code below — can anyone help?
Public Sub PlainTextQuery()
Dim rsData As ADODB.Recordset
Dim sConnect As String
Dim sSQL As String
Dim sCusip As String
sCusip = Trim(Range("cusip").Value)
' Create the connection string
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=C:UsersinternDocumentsNewStuffResiOffers_v1.accdb;"
' Create the SQL statement
sSQL = "SELECT Date, Cusip, Bond, OF, CF, Dealer, Price, Matcher, DayCount, MktValue " & _
"FROM ResiOffersColor " & _
"WHERE Cusip = 16163HAE1 " & _
"ORDER BY Date;"
' Create the recordset object and run the query
Set rsData = New ADODB.Recordset
rsData.Open sSQL, sConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
' Make sure we get records back
If Not rsData.EOF Then
' Dump the contents onto the worksheet
Sheet2.Range("A2").CopyFromRecordset rsData
' Close the recordset object
rsData.Close
Else
' Close the recordset object
rsData.Close
MsgBox "Error: No records returned.", vbCritical
End If
' Destroy the recordset object
Set rsData = Nothing
End Sub
эта строка:
WebSecurity.InitializeDatabaseConnection(connectionStringName: "DefaultConnection", userTableName: "UserProfile", userIdColumn: "UserID", userNameColumn: "UserName", autoCreateTables: true);
бросает:
‘.ArgumentException в системе.Данные.DLL но не был обработан в пользовательском коде
дополнительная информация: Ключевое слово не поддерживается: «метаданные».
моя строка подключения:
add name="DefaultConnection" connectionString="metadata=res://*/TalyllynModel.csdl|res://*/TalyllynModel.ssdl|res://*/TalyllynModel.msl;provider=System.Data.SqlClient;provider connection string="data source=***********;initial catalog=********;persist security info=True;user id=*********;password=********;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.SqlClient" /></connectionStrings>
Не уверен, где я буду неправильно.
9 ответов
строка, которую вы передали, не является допустимой строкой подключения к базе данных, это строка подключения EF который содержит строку подключения SQL Server в его . Безопасные переводы в интернете.InitializeDatabaseConnection ожидает допустимую строку подключения к базе данных
чтобы избежать разбора строки подключения самостоятельно, вы можете использовать EntityConnectionStringBuilder класс для анализа строки и извлечения строки подключения к базе данных из ее ProviderConnectionString свойства
56
автор: Panagiotis Kanavos
когда это случилось со мной, это было, потому что строка подключения была:
providerName="System.Data.SqlClient"
а надо:
providerName="System.Data.EntityClient"
потому что, как было сказано в другом ответе, это строка соединения EF.
просто добавьте еще одну возможность (с которой я столкнулся) — это может быть так, если вы разрабатываете/поддерживаете Azure WebApp, используя строку подключения, сохраненную в настройках приложения Azure.
рядом с каждой строкой подключения в настройках приложения находится раскрывающийся список для типа строки подключения — очень легко забыть установить это значение в «пользовательский» для значений Entity Framework и оставить его по умолчанию (база данных SQL) — что также вызывает вышеуказанную ошибку.
Я собираюсь выбросить еще один ответ, на случай, если кто-то еще столкнется с этим через тот же странный сценарий, что и я.
для начала, как говорили другие, строки подключения ADO и строки подключения EF отличаются.
строка соединения ADO содержит ряд полей, разделенных точкой с запятой, которые могут очень от одного типа соединения к другому, но вы обычно видите «источник данных=xxx», «начальный каталог=yyy» и т. д. Вы не посмотреть «metadata=zzz».
строка соединения EF имеет ту же структуру, но имеет «metadata=zzz» и «provider connection string=www», где «www» — это экранированная строка соединения ADO.
таким образом, обычный формат строки соединения ADO:
data source=myserver;
initial catalog=mydatabase;
Persist Security Info=True;
User ID=myusername;
Password=mypassword;
MultipleActiveResultSets=True
в то время как обычный формат для строки подключения EF:
metadata=res://*/MyDbContext.csdl|
res://*/MyDbContext.ssdl|
res://*/MyDbContext.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=myserver;
initial catalog=mydatabase;
Persist Security Info=True;
User ID=myusername;
Password=mypassword;
MultipleActiveResultSets=True;
application name=EntityFramework
"
большинство людей, которые сталкиваются с этой проблемой, похоже, вырезали строку подключения EF и вставили ее в место, которое нужна строка подключения ADO. В сущности, я сделал то же самое, но процесс был не столь ясен.
в моем случае у меня было веб-приложение, которое использовало EF, поэтому его веб.настройте правильно содержащиеся строки подключения EF.
я опубликовал пакет развертывания, и процесс запрашивает строки подключения, которые будут использоваться при развертывании. Они хранятся в сгенерированных SetParameters пакета развертывания.XML-файл.
Я вырезал и вставил EF строки подключения в поля ввода диалога публикации.
я развернул веб-приложение, попытался получить к нему доступ и получил ошибку «Ключевое слово не поддерживается: метаданные».
чего я не понимал, так это того, что инструмент публикации MS ожидал строку соединения ADO, и что, учитывая это, он построит строку соединения EF.
результатом стало то, что SetParameters.xml и моя развернутая сеть.config имел строки подключения, которые выглядели так это:
metadata=res://*/MyDbContext.csdl|
res://*/MyDbContext.ssdl|
res://*/MyDbContext.msl;
provider=System.Data.SqlClient;
provider connection string="
metadata=res://*/XxDbContext.csdl|
res://*/XxDbContext.ssdl|
res://*/XxDbContext.msl;
provider=System.Data.SqlClient;
provider connection string=&quot;
data source=myserver;
initial catalog=mydatabase;
Persist Security Info=True;
User ID=myusername;
Password=mypassword;
MultipleActiveResultSets=True;
application name=EntityFramework
&quot;
""
другими словами, строка подключения встроенного поставщика была строкой подключения EF, а не строкой подключения ADO, поэтому, когда EF попытался использовать ее для подключения к базе данных, она сгенерировала эту ошибку.
другими словами, когда вы вставляете строки подключения в диалоги публикации, вам нужно вставить строку подключения ADO, а не строку подключения EF, даже если у вас есть в интернете.конфигурация, из которой вы копируете, — это соединение EF строка.
вы можете извлечь строку подключения ADO из поля строки подключения поставщика строки подключения EF, и это то, что вам понадобится, если вы используете то же соединение в развертывании, что и в локальной разработке.
вот код, который я использую, чтобы извлечь имя базы данных и имя сервера из строки подключения.
обратите внимание, как он проверяет, является ли это строка подключения Entity Framework, и если да, то извлекает часть «строка подключения поставщика», которая затем может быть передана в SqlConnectionStringBuilder
:
Если Я не сделай это, я бы стал таким противным»Keyword Not Supported: Metadata
» ошибка.
if (connectionString.ToLower().StartsWith("metadata="))
{
System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString);
connectionString = efBuilder.ProviderConnectionString;
}
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString);
DatabaseServer = builder.DataSource; // eg "MikesServer"
DatabaseName = builder.InitialCatalog; // eg "Northwind"
Привет,
на мой взгляд, строка соединения для ADO.NET (в этом
caseSqlConnection)не может использовать метаданные. Вы используете один конкретный
для Entity Framework. В ADO.NET должно быть что-то вроде:"data source=KAPS-PCKAPSSERVER;initial catalog=vibrant;integrated security=True"
Итак, чтобы подвести итог, вам нужны две отдельные строки подключения, одна для EF
и один для ADO.NET.соус:http://forums.iis.net/post/2097280.aspx
0
автор: Muhammad Rehan Qadri
для Azure Web App тип строки подключения не имеет система».Данные.Entityclient создан», таможни работает хорошо.
проверьте это место
<add name="ConnectionString" connectionString="Data Source=SMITH;Initial Catalog=db_ISMT;Persist Security Info=True;User ID=sa;Password=@darksoul45;MultipleActiveResultSets=True;Application Name=EntityFramework"
providerName="System.Data.SqlClient" />
Как вы можете видеть, есть две строки подключения один для ADO и другой для системы входа в систему или что вы хотите. В моем случае ConnectionString предназначен для системы входа в систему, поэтому я использовал это в: —
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand cmd = null;
SqlDataReader dr = null;
protected void Page_Load(object sender, EventArgs e)
старый пост, но мое решение,
к сожалению, это не решило его для меня, используя функции Azure, разговаривающие с отдельным проектом (библиотекой классов) с EDMX.
мне пришлось редактировать контекст.Конструктор класса CS, заменяющий
: base ("Entities")
С
: base (ConfigurationManager.ConnectionStrings["Entities"].ConnectionString)
надеюсь, это может помочь кому-то еще нужна.
25.04.17 — 12:06
Добра всем! Подключаюсь к базе следующим образом.
ConnectionString = «» +
«Driver={Driver do Microsoft Paradox (*.db )};» +
«DriverId=538; FIL=Paradox 5.X; » +
«PWD=» + Пароль + «;» +
«DefaultDir=» + КаталогФайла + «; DBQ=» + КаталогФайла + «;» +
«DataCodePage=ASCII»;
cn = Новый COMОбъект(«ADODB.Connection»);
cn.Open(ConnectionString);
ТекстЗапроса = «Select * from » + ИмяФайла;
rs = Новый COMОбъект(«ADODB.Recordset»);
rs.Open(ТекстЗапроса, cn);
Выскакивает следующая ошибка
{Обработка.ЗагрузкаИзRKeeper.МодульОбъекта(243)}: Ошибка при вызове метода контекста (Open)
cn.Open(ConnectionString);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
1 — 25.04.17 — 13:06
http://shot.qip.ru/00Tn5Q-418qb6UGi/
драйвер есть, он x32, кто-то знает как его использовать или где взять для x64 версии?
2 — 08.05.17 — 10:28
ап
3 — 11.05.17 — 07:41
Подскажите, что в данном случае выступает как источник данных? и где указать драйвер по умолчанию
4 — 11.05.17 — 08:12
5 — 11.05.17 — 08:40
(4) Михаил, можете пояснить?
6 — 11.05.17 — 08:58
7 — 11.05.17 — 10:15
с другой стороны клиент 1С же x32? и по идее драйвер как раз и должен быть x32 независимо от того, что винда x64?
8 — 11.05.17 — 10:27
9 — 11.05.17 — 10:43
(8) у меня файловая версия, не серверная
10 — 11.05.17 — 10:51
(9) не важно . читайте всю ветку.
11 — 11.05.17 — 12:23
скурил все эти ссылки, но так и взлетает.
когда пытаюсь протестить через udl
http://shot.qip.ru/00TvW3-6f35S7oPa/
12 — 11.05.17 — 12:26
(10) через Viewer получилось открыть, но все равно непонятно как из 1Ски подключаться
13 — 11.05.17 — 12:30
14 — 11.05.17 — 12:56
Михаил, выручайте, судя по всему больше никто не зашарил этот момент
15 — 11.05.17 — 13:51
добавьте к «Driver={Driver do Microsoft Paradox (*.db )};»
строку из ViewODBC.html
16 — 11.05.17 — 14:13
(15) попробовал, такая же ошибка
17 — 11.05.17 — 14:15
создать пустой файл .udl, открыть двойным кликом, настроить подключение, сохранить, открыть блокнотом
18 — 11.05.17 — 14:17
(17) хорошая идея, но есть ограничение связанное с тем, что там нет нужного драйвера
19 — 11.05.17 — 14:18
(18) так поставь его
20 — 11.05.17 — 14:22
(19) нет такого драйвера для x64, да и зачем он если 1Ска x32?
21 — 11.05.17 — 14:30
АДО = Новый COMОбъект(«ADODB.Connection»);
АДО.ConnectionString = «Provider=MSDASQL;UID=ODBC;DSN=Personal»;
АДО.ConnectionTimeout = 0;
АДО.Open();
попробовал цепануться через созданное подключение, ругается на разные архитектуры
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу.
22 — 11.05.17 — 14:53
23 — 11.05.17 — 15:00
так, немного сдвинулся, оказалось, что 1Ску накатил x64. Переставил, получается теперь подключиться, но
}: Ошибка при вызове метода контекста (Open)
rs.Open(ТекстЗапроса, cn);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Paradox] Внешняя таблица не имеет предполагаемый формат.
24 — 11.05.17 — 15:08
таблица .DB естественно
25 — 11.05.17 — 15:11
(24)
если в ViewODBC таблица читается, то в 1с читается.
иначе ищите другой драйвер
26 — 11.05.17 — 15:17
(25) таблица отображается, но не открывается
http://shot.qip.ru/00TvW3-2f35S7oPl
27 — 11.05.17 — 15:20
28 — 12.05.17 — 07:23
Залейте пожалуйста драйвер или подскажите ссылку, не могу нашарить в интернете почему-то
29 — 12.05.17 — 07:55
они в файлике odbcjt32.dll лежат
30 — 12.05.17 — 17:08
У меня родственная проблема. Только у меня вылетает на уровне
Новый COMОбъект(«ADODB.Connection»);
31 — 12.05.17 — 17:28
Драйвер настроен через х32 оснастку?
32 — 12.05.17 — 18:33
(28)
выкладывайте файл-таблицу из бд.
чтобы подобрать драйвер
33 — 16.05.17 — 09:21
(31) [url=http://www.fayloobmennik.net/6989928]Categ.db[/url]
залил табличку.
у меня вышло очень странным образом на данный момент.
// цепляемся через пользовательский DSN
_АДО = Новый COMОбъект(«ADODB.Connection»);
_АДО.ConnectionString = «Provider=MSDASQL;UID=ODBC;DSN=Para»;
_АДО.ConnectionTimeout = 0;
_АДО.Open();
ConnectionString = «» +
«CollatingSequence=ASCII;DefaultDir=F:1srkeeperRK7 — DB;Driver={Driver do Microsoft Paradox (*.db )};DriverId=538;FIL=Paradox 5.X;FILEDSN=F:1srkeeperRK7 — DBParadox.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ParadoxNetPath=C:WINDOWSsystem32;ParadoxNetStyle=4.x;ParadoxUserName=admin;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;DataCodePage=ASCII;»;
т.е. сначала загружаем DSN, потом подключаюсь по строке. Файлы в таком случае читает, но там кракозябры
34 — 16.05.17 — 09:22
35 — 16.05.17 — 09:22
(31) пробовал и так и так
36 — 16.05.17 — 10:24
на данный момент пришел к загрузке
ConnectionString = «» + «Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;DefaultDir=» +
ТестКаталог + «;Dbq=» +ТестКаталог+ «;CollatingSequence=ASCII;»;
cn = Новый COMОбъект(«ADODB.Connection»);
cn.Open(ConnectionString);
ТекстЗапроса = «Select * from » + ИмяФайла;
rs = Новый COMОбъект(«ADODB.Recordset»);
rs.Open(ТекстЗапроса, cn);
и т.д.
данные загружает, но там кракозябры (
37 — 16.05.17 — 10:30
38 — 16.05.17 — 10:33
через Paradox Data Editor смотрю — данные в норме.
через ODBC Viewer — кракозябры
39 — 16.05.17 — 10:35
кодировка не та
40 — 16.05.17 — 10:39
(39) согласен =)
не могу понять как настроить
41 — 17.05.17 — 12:49
ils108
42 — 17.05.17 — 14:02
ап
Добрый день, уважаемые Знатоки!
Меня заинтересовала возможность подключения 1С к сторонней базе данных посредством ADO.
В частности у меня 1С 8.1 и база MS SQL server 2005.
С получением данных проблем не возникает, да и с редактированием и удалением тоже. Во всех этих случаях я составлял запрос в Connection.Execute.
Но я вычитал в книжке «!С: ПРЕДПРИЯТИЕ 7.7/8.0 системное программирование», что можно удалить текущую запись и оператором Delete.
Подскажите, пожалуйста, что я делаю не правильно. Я думаю, что причина в используемом провайдере.
Текст обработки:
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionTimeOut =600;
Connection.CursorLocation = 3;
Connection.Open("Provider=SQLOLEDB;Password=955938;Data Source=andrey;Persist Security Info=True;User ID=user_1c;Initial Catalog=sait");
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText ="select * from nomenclature";
Command.CommandType = 1;
RecordSet = Новый ComОбъект("ADODB.RecordSet");
RecordSet.CursorType = 3;
RecordSet.LockType = 2;
RecordSet = Command.Execute();
Пока RecordSet.EOF() = 0 Цикл
RecordSet.Delete(1);
RecordSet.MoveNext();
КонецЦикла;
Выдается ошибка:
Ошибка при вызове метода контекста (Delete): Произошла исключительная ситуация (ADODB.Recordset): Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
RecordSet.Delete();
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.11.2011
Репутация: нет
Всего: нет
Код |
ADOConnection1->ConnectionString=»Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+BasePath+»;Persist Security Info=False»; ADOConnection1->Open(); ADOTable1->TableName=»MyTName»; ADOTable1->Active=true; |
Данкинг | |
Yersinia pestis Профиль Репутация: нет |
|
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.11.2011
Репутация: нет
Всего: нет
Код |
UnicodeString ExePath=ExtractFilePath(Application->ExeName); ADOConnection1->ConnectionString=»Provider=Microsoft.Jet.OLEDB.4.0;Data Source=»+ExePath+»Моя база.mdb;User/> |
не помогает!
Пробовал в корень диска D положить и назвать базу без русских букв — естественно тоже не помогло
Данкинг | |
Yersinia pestis Профиль Репутация: нет |
|
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.11.2011
Репутация: нет
Всего: нет
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.11.2011
Репутация: нет
Всего: нет
Код |
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:myFoldermyAccess2007file.accdb;Persist Security Info=False; |
Профиль
Группа: Участник
Сообщений: 5
Регистрация: 2.11.2011
Репутация: нет
Всего: нет
Бывалый
Профиль
Группа: Участник
Сообщений: 158
Регистрация: 26.11.2005
Репутация: нет
Всего: 2
Цитата(Shift1834 @ 10.11.2011, 12:06 ) |
Запустите пожалуйста этот файлик (621 КВ) у кого Win 7 или Vista. |
Запустил на обоих ноутах, XP32, Win7 64..
и там и там все норм
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.
Благодарим за понимание.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | C/C++: Базы данных | Следующая тема » |
[ Время генерации скрипта: 0.1217 ] [ Использовано запросов: 21 ] [ GZIP включён ]
Источник
Читайте также: 40 b5511u mad4g прошивка
Adblock
detector
Добрый день, всем.
Буду признателен за советы, мысли, как решить неожиданно возникшую проблему с 1С 8.3. Имеем 1С 8.3.5.15.17, через MSSQL2008, MSOffice 2007. Всё лицензионное.
Недавно перешли с 8.2 на 8.3 . До переход использовалась специальная процедура: записать в file MSAccess2007 некоторую информацию, выглядело это так:
1C | ||
|
И всё работало на ура без всяких проблем.
После перехода на 8.3 столкнулся с проблемою, что Open не даёт соединения — просто упорно выдаёт ошибку.
Ошибка подключения к Access: {ОбщийМодуль.АС_ОСЧ.Модуль(212)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Access Database Engine): ‘E:MyDBMyFile.accDB’ is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
Ошибки на создания ComObject нет. Появляется на любой машине с любыми правами.
Естественно (для тестов) диск Е взят локальный (не сетевой) к базе вообще (MyFile.accDB) вообще никто не подключен; запускается от имени администратора — т.е. все полные права. Если взять запустить через WIndows->RUN «E:MyDBMyFile.accDB», то всё открывается, всё видно. Для тестов вообщен сделал E:MyDBMyFile.accDB как простой file без каких-либо ограничений.
Пробовал совершенно разные варианты команды «СтрокаПодключения» в различных исполнениях — ничего, всё в одном и том же: не открвает accDB никак.
Пробовал установить с Microsoft’а «AccessDatabaseEngine» — не помогает.
Самое интересное… При этом код
1C | ||
|
работает успешно.
Большое спасибо за комментарии.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Содержание:
1. Формирование объекта ADOdb.Connection
2. Отправка команды серверу
3. Получение и обработка результата работы команды
В данной статье будет рассмотрено взаимодействие 1С и ADOdb. Но вначале вкратце опишем, что из себя представляет ADOdb. Итак, ADOdb – это библиотека-функция для программного обеспечения, которая создает прикладной интерфейс для способа доступа к базам данных таких языков, как Python и PHP. Данная библиотека даёт разработчику инструменты, которые позволяют делать приложения не программируя каждый возможный тип источника данных. Также используя ADOdb, программист 1С получает возможность перемены в СУБД (Система управления базами данных), не внося исправлений в главную часть кода.
ADOdb может применяться совместно с системами 1С, например, для получения доступа к таблицам в базе данных 1С при помощи методов ADO. Методы ADO и SQL-DMO разрешают исполнять командование доступом и модификацию данных при помощи функций T-SQL (расширение SQL). В обоих случаях порядок действий будет одинаковым. Рассмотрим же его подробнее!
1. Формирование объекта ADOdb.Connection
Формирование объекта ADOdb.Connection
Реализовали мы данное действие в глобальном модуле, то есть существует объект до тех пор, пока сеанс в 1С открыт – по окончанию работы удалять не нужно.
2. Отправка команды серверу
Для того чтобы сформировать команду, необходимо создать объект ADOdb.Command, после чего привязываем его к нынешнему соединению:
Привязка объекта ADOdb.Connection к соединению
Далее задаётся непосредственно команда:
Команда для объекта ADOdb.Connection
Текст в команде – это некий оператор из T-SQL или имя процедуры из нашей базы данных.
Чтобы работа программы стала быстрее? можно отметить для объекта ADOdb тип команды (функция «ТипКомандыАдо()»).
Как отметить для объекта ADOdb.Connection тип команды
Примечание: по внутренним настройкам при создании объекта ADOdb.Command стоит тип adCmdUnknow.
Тип команды по умолчанию для объекта ADOdb.Connection
В случае, когда используем процедуру с параметрами, которую храним – нужно внести их в собрание «Parameters» в объекте ADOdb.Command. Создание параметров происходит через функцию CreateParameter в объекте ADOdb.Command:
«CreateParamerer (Name, Value Type, Param type, Param Value)», где:
· Name – название параметра (точно так же, как указано в процедуре, в которой он хранится);
· Value Type – значение параметра по типу, определяем при помощи КонстантаАДО();
· Param Type – тип в параметре («Output» или «Input»), определяем при помощи функции ТипПарамедраАДО();
· Param Value – само значение.
Создание параметров в объекте ADOdb.Command
Функция CreateParameter в объекте ADOdb.Command
Пример создания параметров в объекте ADOdb.Command
Для того чтобы передать параметры в процедуру для хранения, нужно сделать описание каждого параметра в том же порядке, как они записаны в процедуре, где хранятся.
Примечание: параметры с типом Numeric нужно будет конвертировать в строки, а только потом передавать.
3. Получение и обработка результата работы команды
Можно вывести результаты двумя способами:
· как набор с данными, который возвращаем функцией «Execute» из объекта ADOdb.Command;
· как обособленные значения, которые можно передать из той процедуры, где они хранятся, по параметрам с типом OUTPUT.
Выведение результатов работы ADOdb.Command
Стоит обратить внимание, что параметры нумеруются начиная со значения «0». Параметры можно использовать ещё раз, если присвоить им значения через опцию Value.
Конечный набор с записями сможет проходить обработку с начала и до конца цикла и будет обращаться к полям по их названиям. Например:
Обработка набора с начала и до конца года
Когда записи стали не нужными, закрываем их с помощью Rs.Close.
Таким образом, соединив 1С и методы ADOdb, мы получили набор записей при работе с базой данных SQL.
Специалист компании «Кодерлайн»
Айдар Фархутдинов
11 / 11 / 8 Регистрация: 18.09.2012 Сообщений: 514 |
|
1 |
|
Ошибка доступа при подключении28.04.2014, 22:25. Показов 1180. Ответов 6
Пытаюсь подключить БД Acces в формате MDB через Visual studio Выбираю источник данных Microsoft Acces указываю путь к базе, проверку подключения проходит а когда нажимаю на ОК пишет отказано в доступе
0 |
7535 / 6397 / 2917 Регистрация: 14.04.2014 Сообщений: 27,863 |
|
28.04.2014, 22:30 |
2 |
Может там имя и пароль нужны?
0 |
11 / 11 / 8 Регистрация: 18.09.2012 Сообщений: 514 |
|
28.04.2014, 23:32 [ТС] |
3 |
Может там имя и пароль нужны? Базу сам создал естественно никаких логинов и паролей в БД не прописывал, раньше все нормально было а сейчас такая вот бяка, единственно что когда подключаю БД в поле логин Admin написанно, но раньше у меня все нормально подключалось
0 |
54 / 54 / 14 Регистрация: 18.04.2014 Сообщений: 170 |
|
28.04.2014, 23:41 |
4 |
откройте права доступа к файлу как everyone, может поможет
0 |
11 / 11 / 8 Регистрация: 18.09.2012 Сообщений: 514 |
|
02.06.2014, 22:35 [ТС] |
5 |
при попытке подключиться через конструктор выводит ошибку, хотя проверка подключения проходит нормально. Пробовал подключить БД в делфи, подключилось без проблем Миниатюры
0 |
pirat2k 11 / 11 / 8 Регистрация: 18.09.2012 Сообщений: 514 |
||||
03.06.2014, 16:34 [ТС] |
6 |
|||
попробовал через код подключилось
Добавлено через 17 часов 18 минут
0 |
1044 / 528 / 66 Регистрация: 16.01.2013 Сообщений: 4,093 |
|
03.06.2014, 16:42 |
7 |
Может там имя и пароль нужны? вам сразу это и сказали
0 |