///推荐3年以上的人员学习!
var file:string := to_str(ApplicationHome, "C-Interface\DA_DataCore.dll")
DllID:= loadLibrary(file)
if DllID < 1
debug
end
print getLoadedLibrary(DllID)," is loaded."
var UUID:=callLibrary(DllID,"ReadSQLDataOfIndex",["IndexR",12345,"IndexC","变量2"])
extern "C" __declspec(dllexport)
void ReadSQLDataOfIndex (UF_Value * ret, UF_Value * IndexRowValue)
{
UF_Value IndexValue;
if (mIndexRowValue.type==UF_ARRAY)
{
//强制执行数据转换
IndexValue.type = UF_INTEGER;
IndexValue.value.integer = mValueArray->nValues;
for (size_t i = 0; i < IndexValue.value.integer; i++)
{
UF_Value mValue = mValueArray->values[i];
switch (mValue.type)
{
case UF_ARRAY:
break;
case UF_STRING:
break;
case UF_INTEGER:
break;
default:
break;
}
if (mValue.type == UF_ARRAY)
{
mValueArray = (UF_ValueArray*)mIndexRowValue.value.value_array;//强制执行数据转换
}
}
}
///
/// 向指定数据表查询指定关键字的指定值 IndexRowValue 最后一个值必须传入数字 数字的值等于传入的变量总数,如果传入的数据中不包含任何数据 则所有数据均无法传入。
///
///
///
///
extern “C” __declspec(dllexport)
void ReadSQLDataOfIndex(UF_Value * ret, UF_Value * IndexRowValue)
{
if (IndexRowValue->type!=UF_ARRAY)
{
ret->type = UF_STRING;
ret->value.string = "-1";///返回错误
return;
}
UF_Value mIndexRowValue = *IndexRowValue;
UF_ValueArray* mValueArray = NULL;
char* SerchIndex,* FilitIndexValue,* FilitValue = NULL;
mValueArray = (UF_ValueArray*)mIndexRowValue.value.value_array;//强制执行数据转换
if (mValueArray->nValues ==4 && mValueArray->values[3].value.integer==3)
{
// 对传入的变量集合值进行解析
SerchIndex = mValueArray->values[0].value.string;
FilitIndexValue = mValueArray->values[1].value.string;//读取其中的值
FilitValue = mValueArray->values[2].value.string;//读取其中的值
UID_Index_DataTableOprator uid;
char* RetValue=uid.Serch_UUID_byIndex(DA_SQL.YESQL, SerchIndex, FilitIndexValue, FilitValue);//RetValue 不能直接返回 因为这个指针执行的是子程序 在当前程序结束的时候 对应地址会被回收
char mRetValue[64];
memcpy(mRetValue, RetValue, strlen(RetValue));
ret->type = UF_STRING;
ret->value.string = RetValue;///返回成功执行的操作
}
else
{
ret->type = UF_STRING;
ret->value.string = "-2";///值数量不对
}
}