存储过程的问题(100分)

  • 主题发起人 主题发起人 R_Baggio
  • 开始时间 开始时间
R

R_Baggio

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把下面的程序写成存储过程,应该怎样写:
function GetPY(InStr :String):String;//功能获取数据库中的汉字信息,
var //若不是汉字则输出是原形
Str,Str1 :String;
i,Count :Smallint;
begin
Str := InStr;
Count := 1;
for i := 1 to Length(Str) do
begin
if Count > Length(Str) then Break;
if Ord(Str[Count]) > 128 then
begin
Str1 := Copy(InStr,Count,2);
Inc(Count,2);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT PY FROM PY WHERE HZ = '''+STR1+'''');
Query1.Open;
result := result +Query1.FieldByName('PY').AsString;
end else
begin
Str1 := Copy(InStr,Count,1);
Inc(Count);
result := result+ Str1;
end;

end;

end;
 
YOUR DATABASE??
 
interbase or sql server
 
ANYBODY CAN DO?
 
SQL中好象没有 Ord(Str[Count]) 这个类似的函数.其它的都有.
您自己改一下就行了.
 
那有没有那位知道如何在INTERBASE生成存储过程的,能给我个例子吗?
要带变量使用的。
 
那位知道在interbase中,哪个函数可以获得字符的ascii;
thank you!
 
in sqlserver: ascii( )
 
在sql server中是ASCII(获取ASCii码)和LEN(获取字符串长度);
但在INTERBASE 中应该是什么函数?
 
anybody can help me!
 
外部函数。ascii_char ascii_val
应该是你所要的。
ascii_char
Returns the ASCII character corresponding to the value passed in.
DECLARE EXTERNAL FUNCTION ASCII_CHAR
INTEGER
RETURNS CHAR(1)
ENTRY_POINT ’IB_UDF_ascii_char’ MODULE_NAME ’ib_udf’;

ascii_val
Returns the ASCII value of the character passed in.
DECLARE EXTERNAL FUNCTION ASCII_VAL
CHAR(1)
RETURNS INTEGER BY VALUE
ENTRY_POINT ’IB_UDF_ascii_val’ MODULE_NAME ’ib_udf’;
 
我在INTERBASE中还是用不了,他不认这个函数,该怎么使用;
还有获取字符串的长度的函数;拜托了
 
附加功能 将问题提前
 
>>interbase or sql server
interbase 中函数很少
 
interbase目录中有演示程序,专门讲了存储过程的创建及调用。
或在delphi4核心编程电子版中有您想要得东东!
若您需要我可以伊妹给您.
祝您好运!
 
R_Baggio:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 
后退
顶部