عندي برنامج مستعجل لو تكرمتم
المشكلة عندي بالاستدعاء يطلع مع خطأ ... والمطلوب هو كالتالي:
قاعدة بيانات
*حصر اصول الإنارة: *
الإنارة:
١- أعمدة
الخيارات؛ ( عامود ١٦م مدهون، عامود ١٦م غير مدهون، عامود ١٢م مدهون، عامود ١٢م غير مدهون، عامود ١٠م مدهون، عامود ١٠م غير مدهون، عامود ٨م مدهون، عامود ٨م غير مدهون، عامود ٦م مدهون، عامود ٦م غير مدهون)
٢- الفوانيس:
الخيارات (فانوس جداري، فانوس هوائي)
٣-*المواد: *
الخيارات؛ ( مصنع ومواصفات الفانوس، مصنع ومواصفات العامود، مصنع ومواصفات علبة الفيوز، مصنع وموصفات لوحة التوزيع، مصنع ومواصفات القاعدة الخرسانية، مصنع ومواصفات غرفة التفتيش، مواصفات قضيب التأريض، مصنع ومواصفات الكيبل، مصدر التغذية وحامل العداد)
٤-البلاغات:
١- بلاغات حرجة
٢- بلاغات غير حرجة (صيانة اليوم الواحد)
#include <sqlite3.h>
#include <iostream>
int main() {
sqlite3* DB;
int exit = sqlite3_open("LightingManagement.db", &DB);
if (exit) {
std::cerr << "Error open DB: " << sqlite3_errmsg(DB) << std::endl;
return -1;
} else {
std::cout << "Database opened successfully!" << std::endl;
}
sqlite3_close(DB);
return 0;
}
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/resultset.h>
#include <iostream>
int main() {
sql::mysql::MySQL_Driver* driver;
sql::Connection* conn;
driver = sql::mysql::get_mysql_driver_instance();
conn = driver->connect("tcp://127.0.0.1:3306", "username", "password");
conn->setSchema("LightingManagement");
sql::Statement* stmt = conn->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT * FROM Columns");
while (res->next()) {
std::cout << "Column ID: " << res->getInt("ColumnID") << std::endl;
}
delete res;
delete stmt;
delete conn;
return 0;
}
CREATE DATABASE LightingManagement;
USE LightingManagement;
CREATE TABLE Columns (
ColumnID INT PRIMARY KEY IDENTITY,
ColumnType NVARCHAR(50), -- مثل: ١٦م مدهون، ١٢م غير مدهون
Manufacturer NVARCHAR(50), -- مصنع العامود: البابطين، اليمامة
EarthingSystem NVARCHAR(10) -- نظام التأريض: Alone أو Grid
);
CREATE TABLE Lanterns (
LanternID INT PRIMARY KEY IDENTITY,
LanternType NVARCHAR(50), -- مثل: جدارية، هوائية
LightType NVARCHAR(20), -- نوع الفانوس: LED، هالوجين، صوديوم
PowerRating INT, -- مواصفات الفانوس: القدرة بالواط
Manufacturer NVARCHAR(50) -- مصنع الفانوس: البابطين، اليمامة، Philips
);
CREATE TABLE Cables (
CableID INT PRIMARY KEY IDENTITY,
MaterialType NVARCHAR(20) -- نوع الكيبل: نحاس أو ألمنيوم
);
CREATE TABLE Locations (
LocationID INT PRIMARY KEY IDENTITY,
Coordinates NVARCHAR(50), -- إحداثيات الموقع
InspectionChamber NVARCHAR(50), -- غرفة التفتيش
PowerSource NVARCHAR(50), -- مصدر التغذية
DistributionPanel NVARCHAR(50) -- لوحة التوزيع
);
CREATE TABLE Materials (
MaterialID INT PRIMARY KEY IDENTITY,
FuseBox NVARCHAR(50), -- علبة الفيوز الداخلية
ConcreteBase NVARCHAR(50), -- القاعدة الخرسانية
EarthingSystem NVARCHAR(10) -- نظام التأريض: Alone أو Grid
);
CREATE TABLE Projects (
ProjectID INT PRIMARY KEY IDENTITY,
Contractor NVARCHAR(50), -- المقاول المنفذ
ExecutionDate DATE, -- تاريخ التنفيذ
LocationID INT FOREIGN KEY REFERENCES Locations(LocationID), -- الموقع
ColumnID INT FOREIGN KEY REFERENCES Columns(ColumnID), -- نوع العمود
LanternID INT FOREIGN KEY REFERENCES Lanterns(LanternID), -- نوع الفانوس
CableID INT FOREIGN KEY REFERENCES Cables(CableID), -- نوع الكيبل
MaterialID INT FOREIGN KEY REFERENCES Materials(MaterialID) -- المواد
);
SELECT ColumnType, COUNT(*) AS TotalColumns
FROM Columns
GROUP BY ColumnType;
SELECT LanternType, LightType, COUNT(*) AS TotalLanterns
FROM Lanterns
GROUP BY LanternType, LightType;
SELECT DistributionPanel, COUNT(*) AS TotalDistributionPanels
FROM Locations
GROUP BY DistributionPanel;
SELECT FuseBox, COUNT(*) AS TotalFuseBoxes
FROM Materials
GROUP BY FuseBox;
SELECT ConcreteBase, COUNT(*) AS TotalConcreteBases
FROM Materials
GROUP BY ConcreteBase;
SELECT InspectionChamber, COUNT(*) AS TotalInspectionChambers
FROM Locations
GROUP BY InspectionChamber;
SELECT EarthingSystem, COUNT(*) AS TotalEarthingSystems
FROM Materials
GROUP BY EarthingSystem;
SELECT MaterialType, COUNT(*) AS TotalCables
FROM Cables
GROUP BY MaterialType;
SELECT PowerSource, COUNT(*) AS TotalPowerSources
FROM Locations
GROUP BY PowerSource;
SELECT 'Columns' AS Category, ColumnType AS Item, COUNT(*) AS Total
FROM Columns
GROUP BY ColumnType
UNION
SELECT 'Lanterns', CONCAT(LanternType, ' - ', LightType), COUNT(*)
FROM Lanterns
GROUP BY LanternType, LightType
UNION
SELECT 'Distribution Panels', DistributionPanel, COUNT(*)
FROM Locations
GROUP BY DistributionPanel
UNION
SELECT 'Fuse Boxes', FuseBox, COUNT(*)
FROM Materials
GROUP BY FuseBox
UNION
SELECT 'Concrete Bases', ConcreteBase, COUNT(*)
FROM Materials
GROUP BY ConcreteBase
UNION
SELECT 'Inspection Chambers', InspectionChamber, COUNT(*)
FROM Locations
GROUP BY InspectionChamber
UNION
SELECT 'Earthing Systems', EarthingSystem, COUNT(*)
FROM Materials
GROUP BY EarthingSystem
UNION
SELECT 'Cables', MaterialType, COUNT(*)
FROM Cables
GROUP BY MaterialType
UNION
SELECT 'Power Sources', PowerSource, COUNT(*)
FROM Locations
GROUP BY PowerSource;
#include <iostream>
#include <sqlite3.h> // أو MySQL حسب الحاجة
void addColumn(sqlite3* db, const std::string& columnType, const std::string& manufacturer, const std::string& earthingSystem) {
std::string sql = "INSERT INTO Columns (ColumnType, Manufacturer, EarthingSystem) VALUES ('" + columnType + "', '" + manufacturer + "', '" + earthingSystem + "');";
char* errMessage = nullptr;
int exit = sqlite3_exec(db, sql.c_str(), nullptr, 0, &errMessage);
if (exit != SQLITE_OK) {
std::cerr << "Error inserting data: " << errMessage << std::endl;
sqlite3_free(errMessage);
} else {
std::cout << "Column added successfully!" << std::endl;
}
}
int main() {
sqlite3* DB;
int exit = sqlite3_open("LightingManagement.db", &DB);
if (exit) {
std::cerr << "Error open DB: " << sqlite3_errmsg(DB) << std::endl;
return -1;
} else {
std::cout << "Database opened successfully!" << std::endl;
}
// إضافة عمود
std::string columnType, manufacturer, earthingSystem;
std::cout << "Enter Column Type: ";
std::getline(std::cin, columnType);
std::cout << "Enter Manufacturer: ";
std::getline(std::cin, manufacturer);
std::cout << "Enter Earthing System (Alone/Grid): ";
std::getline(std::cin, earthingSystem);
addColumn(DB, columnType, manufacturer, earthingSystem);
sqlite3_close(DB);
return 0;
}