【发布时间】:2020-02-17 08:44:50
【问题描述】:
我,我正在编写我的第一个 delphi 脚本,当我想运行它时,有一个 ';预期的错误,但我不知道为什么。当我单击错误时,光标会跳到出现错误的位置,但那是代码末尾下方的两行 怎么了?
var
stringName : String;
stringBase : String;
procedure setPicturePath();
var
qryPicEncode : TOraQuery;
qryPicDecode : TOraQuery;
begin
qryPicEncode := TOraQuery.Create(nil);
qryPicEncode.SQL.Text := 'select ''utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw("werner weilenmann"))) from dual';
qryPicDecode := TOraQuery.Create(nil);
qryPicDecode.SQL.Text := 'select ''utl_raw.cast_to_varchar2(utl_encode.base64_decode(utl_raw.cast_to_raw("d2VybmVyIHdlaWxlbm1hbm4="))) from dual';
qryPicEncode.open;
qryPicEncode.first;
if not(qryPicEncode.eof) then begin
stringName := qryPicEncode.fieldByName('pic4Path').AsString;
end;
qryPicDecode.open;
qryPicDecode.first;
if not(qryPicDecode.eof) then begin
stringBase := qryPicDecode.fieldByName('ODACQuery1').AsString;
end;
qryPicEncode:=nil;
qryPicDecode:=nil;
end;
begin
//Picture2.LoadFromFile('U:\Documents\logos\logo1.png');
setPicturePath();
showmessage(stringName);
showmessage(stringBase);
end.
【问题讨论】:
-
您没有显示足够的代码来回答导致
; expected错误的原因。由于编译器认为错误超出了您的实际代码,因此您的部分代码中可能有错误的行尾字符。当您从网上复制代码时,可能会发生这种情况。您使用的是哪个 Delphi 版本? -
似乎还有其他一些错误。在较低的
begin - end块中,您调用setPicturePath,它的末端设置qryPicEncode:=nil和qryPicDecode:=nil。在执行返回到较低的begin - end块时,您的代码将继续调用showmessage(qryPicEncode);。您希望ShowMessage()对话框向您展示什么?其次,qryPicEncode和 'qryPicDecode' 是procedure setPicturePath中的局部变量,它们甚至对较低的begin - end块都不可见。 -
查看this answer 以了解当错误的 End-Of.Line 字符可能会偏移代码的行号时的解释。它结合可执行行(可以放置断点)解释它,但也会导致类似的行号错误。
-
我已经对其进行了编辑,现在我得到一个“引用的字符串未正确终止”异常。
-
我想显示名称Base64编码和解码