Я создал приложение, которое собирает информацию с компьютера (имя компьютера, процессор, память и т. Д.), Но мне так сложно отображать информацию, хранящуюся в базе данных SQLite, когда Я выполняю запрос, я получаю сообщение «NO SUCH TABLE», когда я точно знаю, что у меня есть таблица под названием «hardware», что я делаю неправильно?SQLite Исключение с сообщением: нет такой таблицы
Вот код я использую, чтобы выполнить запрос:
procedure TMain.executeButtonClick(Sender: TObject);
var
results: TDataSet;
query: String;
begin
outputMemo.ClearSelection;
query := 'SELECT * FROM hardware;';
try
SQLConnection1.Execute(query, nil, results);
except
on E: Exception do
outputMemo.Text := 'Exception raised with message: ' + E.Message;
end;
ShowSelectResults(results);
end;
Файл базы данных и таблицы создаются программно создаются каждый раз, когда приложение запускается
procedure CheckForDatabase;
var
sldb: TSQLiteDatabase;
sSQL: string;
begin
slDBPath := ExtractFilePath(paramstr(0)) + 'ComputerName.db';
// ShowMessage(slDBPath);
sldb := TSQLiteDatabase.Create(slDBPath);
try
if sldb.TableExists('hardware') then
begin
sSQL := 'DROP TABLE hardware';
sldb.ExecSQL(sSQL);
end;
sSQL := 'CREATE TABLE hardware (id INTEGER PRIMARY KEY, compname TEXT, username TEXT, model TEXT, manufacturer TEXT, domain TEXT, ip TEXT, serialnumber TEXT)';
sldb.ExecSQL(sSQL);
sldb.ExecSQL('CREATE INDEX sHardware ON hardware(CompName);');
sldb.BeginTransaction;
sSQL := 'INSERT INTO hardware(id, compname, username, model, manufacturer, domain, ip, serialnumber) VALUES (1, "AMD8537", "OMonge", "Gigabyte", "Gigabyte", "Workgroup", "192.168.1.11", "8746652");';
sldb.ExecSQL(sSQL);
sldb.Commit;
finally
sldb.Free;
end;
end;
И это база данных SQLite:
Любой хелл p, котор вы можете обеспечить меня с будет оценен. Спасибо.
Что такое 'SQLConnection1' и как настроен против этой базы данных. У вас есть правильный путь к указанному там файлу базы данных? – TLama
SQLConnection1 - объект TSQL Connection, и да, у меня есть абсолютный путь, связанный с базой данных, это не проблема. – Cor4Ever
Выполните запрос «select * from sqlite_master» и посмотрите, какие таблицы действительно находятся в вашей базе данных. –