我目前正在与其他一些人一起开展一个项目,可悲的是,他们不再提供参考资料。这个项目使用 C# 作为 GUI,使用 C++ 来更新我们的古老数据库。目前,我在 C# 中有这个函数:
[DllImport("Synch.DLL", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.Cdecl)]
//Synch bool Synch(void * voidPtr, const TCHAR * databaseDir, const TCHAR * truckDir)
static extern Int32 Synch(IntPtr pSync, string databaseDir, string destDir, ref bool[] wholeFiles);
Run Code Online (Sandbox Code Playgroud)
WholeFiles 是一个布尔数组,用于根据用户输入确定是否应该同步某些文件。
C++ 应该接受这个数组,并且能够在满足某些条件时将一些布尔值翻转为真或假。
if (numSyncRecords > 0){
Log::WriteVerbose(_T(" %d recs, %d differences found"), (int) numRecsUsed, (int) numSynRecords);
if(wholeFiles[sourceFileID]){
CString tempPath = _T("");
tempPath += destDir;
tempPath += fileName;
DeleteFile(tempPath);
}
else
wholeFiles[sourceFileID] = false;
}
else
wholeFiles[sourceFileID] = false; …Run Code Online (Sandbox Code Playgroud) 这是发生的事情:
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------
Discount
Taxes
Customer
Vehicles
WorkOrder
Task
TaskPart
Employee
EmplyeeTask
WorkOrderPart
InvoiceDetails
TABLE_NAME
------------------------------
Invoice
Parts
InvoicePrimaries
14 rows selected.
SQL> select * from Discount;
select * from Discount
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL>
Run Code Online (Sandbox Code Playgroud)
我无法访问该表。我可以让它在 C# 中正常工作,但在 Oracle GUI 和 SQL 命令行中,我无法选择表。(这是一个使用 Oracle Express 的个人自制数据库)
每当我向下面的select语句添加一个计数时,它会导致它给我一个错误,我不知道为什么:
select "WorkOrder"."WorkOrderID", "Vehicles"."Model", "Vehicles"."Color",
"Vehicles"."LicensePlate", COUNT("WorkOrderPart"."WorkPartID") AS "Parts"
FROM "WorkOrder", "Vehicles", "WorkOrderPart"
WHERE "WorkOrder"."VIN" = "Vehicles"."VIN" AND
"WorkOrder"."WorkOrderID" = "WorkOrderPart"."WorkOrderID";
Run Code Online (Sandbox Code Playgroud)
每当我运行它时,我会收到以下错误:
select "WorkOrder"."WorkOrderID", "Vehicles"."Model", "Vehicles"."Color",
*
ERROR at line 1:
ORA-00937: not a single-group group function
Run Code Online (Sandbox Code Playgroud)
我该怎么办?我正在使用Oracle数据库运行SQL命令行.