Я новичок в базе данных, используя Delphi. На самом деле мне нужно отобразить все таблицы и их данные в gridview с помощью firedac. Несколько видеороликов на youtube и docwiki рассказывают о том, как получить доступ к базе данных через визуальные компоненты, то есть бросить FDConnetion, FDTable, DataSource и т. Д. В форме.Показать базу данных sqlite в Delphi XE6, используя программно firedac
Но я хотел бы сделать то же самое программно, чтобы больше сосредоточиться на кодировании и отдельной форме из бизнес-логики.
Вот что я сделал в C# во время доступа к данным MSACCESS:
public void LoadUsersInfo()
{
try {
OleDbConnection Connection = new OleDbConnection();
Connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;DataSource=dbCyberNet.accdb;Persist Security Info=False;";
Connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = Connection;
String query = "SELECT * FROM tblUsersInfo";
command.CommandText = query;
OleDbDataAdapter adapter = new OleDbDataAdapter(command);
DataTable dt = new DataTable();
adapter.Fill(dt);
dbGrid.DataSource = dt;
}
catch (Exception ex) {
MessageBox.Show("Error occured while loading users information . " + ex.Message.ToString());
}
finally { Connection.Close(); }
}
Я хотел бы сделать то же в Дельфах для SQLite базы данных. Вот что я пробовал (редактировал).
procedure TForm1.Button1Click(Sender: TObject);
var
con: TFDConnection;
table: TFDTable;
ds: TDataSource;
begin
con := TFDConnection.Create(nil);
con.LoginPrompt := False;
table := TFDTable.Create(nil);
table.TableName := 'Students';
ds := TDataSource.Create(nil);
ds.DataSet := table;
try
con.Open('DriverID=SQLite;Database=studentsDB.sqlite;');
table.Connection := con;
table.Active := True;
con.Connected := True;
DBGrid1.DataSource := ds;
finally
con.Close;
con.Free;
table.Free;
ds.Free;
end;
end;
Всякий раз, когда я запускаю этот код, появляется диалоговое окно с сообщением об ошибке: Первое случайное исключение в $ 759AF097. Класс исключений ESQLiteNativeException с сообщением '[FireDAC] [Phys] [SQLite] ОШИБКА: нет такой таблицы: СТУДЕНТЫ. Process Project1.exe (3836)
, в то время как одно и то же имя таблицы существует внутри таблицы и с использованием компонентов visual firedac, я вижу, что сетка данных заполняется легко.
Что вы пробовали? Вы пытались объявить экземпляры объектов и создавать их в коде, как это было на C#? –
Вопрос отредактирован. Пожалуйста, смотрите. –