43 lines
2.0 KiB
Matlab
43 lines
2.0 KiB
Matlab
% Load the Runs table from the database
|
|
db = DBHandler("pathToDB", 'C:\Users\Silas\Documents\MATLAB\Datensätze\sioe_labor\silas_labor.db');
|
|
runsTable = db.queryDB(db.tables, {'Runs.run_id', 'Runs.tx_bits_path', 'Runs.tx_symbols_path', 'Runs.rx_sync_path', 'Runs.rx_raw_path', 'Runs.filename'});
|
|
|
|
% Initialize an array to store the result of existence check
|
|
fileExistenceResults = false(height(runsTable), 4); % 4 columns for the paths: tx_bits, tx_symbols, rx_sync, rx_raw
|
|
|
|
% Main file path
|
|
sioe_labor_path = 'C:\Users\Silas\Documents\MATLAB\Datensätze\sioe_labor';
|
|
|
|
% Loop through all rows in the table and check paths
|
|
for i = 1:height(runsTable)
|
|
fileExistenceResults(i, 1) = exist([sioe_labor_path, runsTable.tx_bits_path{i}], 'file') == 2;
|
|
fileExistenceResults(i, 2) = exist([sioe_labor_path, runsTable.tx_symbols_path{i}], 'file') == 2;
|
|
fileExistenceResults(i, 3) = exist([sioe_labor_path, runsTable.rx_sync_path{i}], 'file') == 2;
|
|
fileExistenceResults(i, 4) = exist([sioe_labor_path, runsTable.rx_raw_path{i}], 'file') == 2;
|
|
end
|
|
|
|
% Identify corrupted run_ids (where any path does not exist)
|
|
corruptedRunIds = runsTable.run_id(~all(fileExistenceResults, 2));
|
|
|
|
% Delete entries in all tables related to corrupted run_ids
|
|
for i = 1:numel(corruptedRunIds)
|
|
run_id = corruptedRunIds(i);
|
|
|
|
% Delete from BERs table
|
|
db.executeSQL(sprintf('DELETE FROM BERs WHERE run_id = %d;', run_id));
|
|
|
|
% Delete from Equalizer table (if applicable)
|
|
db.executeSQL(sprintf('DELETE FROM Equalizer WHERE eq_id IN (SELECT eq_id FROM BERs WHERE run_id = %d);', run_id));
|
|
|
|
% Delete from Measurements table
|
|
db.executeSQL(sprintf('DELETE FROM Measurements WHERE run_id = %d;', run_id));
|
|
|
|
% Delete from Configurations table
|
|
db.executeSQL(sprintf('DELETE FROM Configurations WHERE run_id = %d;', run_id));
|
|
|
|
% Delete from Runs table
|
|
db.executeSQL(sprintf('DELETE FROM Runs WHERE run_id = %d;', run_id));
|
|
end
|
|
%
|
|
% disp('Entries for corrupted run_ids have been removed from the database.');
|