Получение Delphi 7 для игры с SQL Server Compact 3.5
У нас есть старое приложение, написанное на Delphi 7. В настоящее время оно подключено к старой базе данных Oracle Lite, которая удаляется. Полномочия, которые были выбраны для перемещения данных в базу данных Microsoft SQL Server Compact. После того, как я потратил много времени на перенос данных в базу данных SQL CE, мне поручили заставить приложение Delphi хорошо играть с новыми базами данных.
Люди, которые должны быть умнее меня (мой босс), говорят мне, что я должен иметь возможность просто изменить соединение, и все должно вернуться в порядок. Тем не менее, я два дня бился головой о монитор, пытаясь настроить соединение ADO в приложении Delphi для работы с нашей новой базой данных SQL CE.
Немного упрощенный пример того, что яя работаю с:
Соединение установлено в глобальном объекте с именем TADOConnection "adoConn ":
procedure TGlobal.DataModuleCreate(Sender: TObject);
begin
adoConn.ConnectionString := 'Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=path\db.sdf;';
adoConn.Connected := True;
end;
Вскоре после этого вызывается процедура для заполнения некоторых сообщений. Чтобы попытаться снять приложение, яМы упростили код, чтобы сделать простой запрос и показать результаты в окне сообщения. Процедура получает параметр для строки SQL, но ям пока проигнорируем его и вручную вставим простой оператор выбора:
procedure Select(const SQL: string);
var
adoQuery : TADOQuery;
begin
adoQuery := TADOQuery.Create(nil);
try
adoQuery.Connection := Global.adoConn;
adoQuery.SQL.Text := 'select * from CLT_MESSAGES';
adoQuery.ExecSQL;
While not adoQuery.Eof do
begin
// Here I just created a MessageDlg to output a couple of fields.
adoQuery.Next;
end;
finally
adoQuery.Free;
end;
end;
Все компилируется просто отлично, но когда я запускаю приложение, я получаю следующую ошибку: "
Многошаговая операция вызвала ошибки. Проверьте каждое значение статуса. «Я»
мы сделали дополнительную диагностику и обнаружили, что ошибка происходит в adoQuery.ExecSQL. Я'Мы пробовали несколько разных версий строки подключения и несколько разных способов запроса данных, но все они заканчиваются одинаково. Я тоже могуне могу подключиться к базе данных, или я получаю это глупоMutliple шаг» ошибка.
Я заранее ценю любую помощь, которая может быть предложена.