Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: PARADOX 7.X и VB Добавлено: 26.07.06 16:11  

Автор вопроса:  alex | ICQ: 220447048 
Уважаемые All. Бьюсь уже с неделю по поводу работы vb с Paradox 7. Помогите плиз. Чтение базы работает на ура, даже несколькими способами

Dim db2 As DAO.Database
Dim rs2 As DAO.Recordset
Dim dbFile As String

dbFile = "C:\DATA\"
Set db2 = DBEngine.OpenDatabase(dbFile, False, False, "Paradox 7.X;")
sql = "SELECT * FROM TABLE_MAIN.DB"
Set rs2 = db2.OpenRecordset(sql, dbOpenDynaset)
Do While Not rs2.EOF  '  заполнение шаблона названий и идентификаторов
List1.AddItem rs2("NAME")
rs2.MoveNext
Loop
rs2.Close
db2.Close

или

Dim sql As String
Dim m_Conn As ADODB.Connection
Set m_Conn = New ADODB.Connection
With m_Conn
    .Provider = "Provider=MSDASQL.1;Extended Properties='DefaultDir=С:\DATA;Driver={Microsoft Paradox Driver (*.db )};DriverId=26;MaxBufferSize=2048;PageTimeout=600;'" ' Это провайдер SQL Server
    .ConnectionString = MakeParadoxConnStr("С:\DATA")
    .Open
End With

Dim m_Rs As ADODB.Recordset
Set m_Rs = m_Conn.Execute("SELECT * FROM TABLE_MAIN.DB") 'Получаемданные из таблицы
Do While Not m_Rs.EOF  '  заполнение шаблона названий и идентификаторов
List1.AddItem m_Rs("NAME")
m_Rs.MoveNext
Loop

Подключается и делает выборку нормально, если не указывать условия выборки, например "SELECT * FROM TABLE_MAIN.DB WHERE ID='1964'", - тогда несоответствие типов данных

А насчет апдейтов вообще плохо ((

Dim db2 As DAO.Database
Dim rs2 As DAO.Recordset
Dim dbFile As String
Dim sql As String
dbFile = "С:\DATA\"
Set db2 = DBEngine.OpenDatabase(dbFile, False, False, "Paradox 7.X;")
'On Error Resume Next
sql = "UPDATE TABLE_MAIN.DB SET ADDRESS = '34143546FGSDFG' WHERE ID = '1965'"
db2.Execute sql, dbOpenDynaset
rs2.Close
db2.Close


Нет ли у кого рабочего кусочка, на посмотреть?


Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 ViktorZ



ICQ: 271202919 

Вопросов: 56
Ответов: 837
 Профиль | | #1 Добавлено: 27.07.06 09:33
>тогда несоответствие типов данных
Мож не надо ID в кавычки брать?
Почитай доки, наверное там что то есть...

Ответить

Номер ответа: 2
Автор ответа:
 alex



ICQ: 220447048 

Вопросов: 1
Ответов: 4
 Профиль | | #2 Добавлено: 27.07.06 11:57
И так и эдак пробовал.
Что интересно, для контроля выполнял запросы в Database Tour Pro, выплняются с тем же "успехом" если подключение было через ODBC, если подключить через BDE все в полном порядке.
Тогда вопрос как скрестить VB и BDE

Ответить

Номер ответа: 3
Автор ответа:
 alex



ICQ: 220447048 

Вопросов: 1
Ответов: 4
 Профиль | | #3 Добавлено: 27.07.06 13:21
Так. с выборкой/чтением разобрался, действительно различные типы данных в запрсе и в полях, ну там, танцы с бубном вокруг кавычек.
Это-то ладно, но мне ж еще и ПИСАТЬ в базу НАДО, редактировать.
Ругается - "В операции должен использоваться обновляемый запрос"

Ответить

Номер ответа: 4
Автор ответа:
 ViktorZ



ICQ: 271202919 

Вопросов: 56
Ответов: 837
 Профиль | | #4 Добавлено: 28.07.06 13:15
В Делфях НУжно было так писать.
SQL_Code
ExecSQL - еслиписать или обновлять. Видимо тут у тя также что нить.Я работал только с БДЕ, и Парадокс у меня был по младше, проблемы были только с организацией Хранимых процедур. А вообще читал localSQL и все нормально...

Ответить

Номер ответа: 5
Автор ответа:
 alex



ICQ: 220447048 

Вопросов: 1
Ответов: 4
 Профиль | | #5 Добавлено: 31.07.06 09:57
Парадокс именно 7й, тут ничего не попишешь (. А примерчик на VB?
Попробовал так:

Dim db2 As DAO.Database
Dim rs2 As DAO.Recordset
Dim dbFile As String
dbFile = "C:\DATA\"
Set db2 = DBEngine.OpenDatabase(dbFile, False, False, "Paradox 7.X;";)
sql = "SELECT * FROM TABLE_MAIN.DB"
Set rs2 = db2.OpenRecordset(sql, dbOpenDynaset, dbOptimistic)
rs2.Edit
rs2.Fields("ADDRESS";).Value = "Yjdsq flhtc"
rs2.Update
rs2.Close
db2.Close

Ругается на rs2.Edit, говорит что база или объект доступны только для чтения - нагло врет. Может надо где насильно указать на возможность редактирования?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам