ods只SQL server6.0有吗?我装了6.5,找不到,但想编扩展存储过程怎么办?

hawkview 2000-02-25 08:30:00
...全文
190 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoldenLion 2000-03-10
  • 打赏
  • 举报
回复
ODS是SQL Server的server端部件,在7.0中当然有。下面是Inside SQL Server 7的例子,借花献佛:
// XP_SPRINTF
//
// Format and store a series of characters and values into an
// output string using sprintf
//
// Parameters:
// srvproc - the handle to the client connection
//
// Returns:
// XP_NOERROR or XP_ERROR
//
// Side Effects:
//
//
SRVRETCODE xp_sprintf( SRV_PROC * srvproc )
{
int numparams;
int paramtype;
int i;
char string [MAXSTRLEN];
char format[MAXSTRLEN];
char values[MAXARGUMENTS][MAXSTRLEN];
char szBuffer[MAXSTRLEN];

// Get number of parameters
//
numparams=srv_rpcparams(srvproc);

// Check number of parameters
//
if (numparams < 3)
{
// Send error message and return

//
LoadString(hModule, IDS_ERROR_PARAM, szBuffer,
sizeof(szBuffer));
goto ErrorExit;
}

paramtype=srv_paramtype(srvproc, 1);
if (paramtype != SRVVARCHAR)
{
// Send error message and return
//
LoadString(hModule, IDS_ERROR_PARAM_TYPE, szBuffer,
sizeof(szBuffer));
goto ErrorExit;
}

if (!srv_paramstatus(srvproc, 1))
{
// Send error message and return
//
LoadString(hModule, IDS_ERROR_PARAM_STATUS, szBuffer,
sizeof(szBuffer));
goto ErrorExit;
}

for (i = 2; i <= numparams; i++)
{
paramtype=srv_paramtype(srvproc, i);

if (paramtype != SRVVARCHAR)
{
// Send error message and return
//
LoadString(hModule, IDS_ERROR_PARAM_TYPE, szBuffer,
sizeof(szBuffer));
goto ErrorExit;
}
}

for (i=0; i < MAXARGUMENTS; i++)
{
memset(values[i], 0, MAXSTRLEN);

srv_bmove(srv_paramdata(srvproc, i + 3),
values[i],
srv_paramlen(srvproc, i + 3));
}

memset(string, 0, MAXSTRLEN);
srv_bmove(srv_paramdata(srvproc, 2), format,
srv_paramlen(srvproc, 2));
format[srv_paramlen(srvproc, 2)]='\0';

// This is the heart of the function — it simply wraps sprintf
// and passes back the string
sprintf(string, format,
values[0], values[1], values[2], values[3], values[4],
values[5], values[6], values[7], values[8], values[9],
values[10], values[11], values[12], values[13], values[14],
values[15], values[16], values[17], values[18], values[19],
values[20], values[21], values[22], values[23], values[24],
values[25], values[26], values[27], values[28], values[29],
values[30], values[31], values[32], values[33], values[34],
values[35], values[36], values[37], values[38], values[39],
values[40], values[41], values[42], values[43], values[44],
values[45], values[46], values[47], values[48], values[49]);

srv_paramset(srvproc, 1, string, strlen(string));

return XP_NOERROR;

ErrorExit:
srv_sendmsg(srvproc,
SRV_MSG_ERROR,
SPRINTF_ERROR,
SRV_INFO,
(DBTINYINT) 0,
NULL,
0,
0,
szBuffer,
SRV_NULLTERM);

return XP_ERROR;
}
hawkview 2000-03-09
  • 打赏
  • 举报
回复
wait
dongxun 2000-02-29
  • 打赏
  • 举报
回复
编扩展存储过程其实是写DLL的过程,在7。0下面为xp_XXX.
一个例子是:EXEC xp_cmdshell 'dir c:\sql7'
Tony_Yuan 2000-02-27
  • 打赏
  • 举报
回复
可以使用VC来编,而且有一个例子.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧