【发布时间】:2019-05-14 11:45:12
【问题描述】:
我正在尝试使用 qry1 从表“游戏”中提取数据到一个字符串变量中,然后将其插入到“库”中。我的问题是当我单击按钮时,它在sGameName := qry1['GameName']; 行上给了我上面提到的错误。该字段是一个短字符串变量
procedure TForm1.btnConfirmClick(Sender: TObject);
var
sGameID, sGameName, sPlatform : string;
begin
if (chkAddLb.Checked = True) and (chkRemoveLb.Checked = False) then
begin
qry1.Close;
qry1.SQL.Text := 'SELECT * FROM Games WHERE GameName = "' + cbb1.Items.Text + '";';
qry1.Open;
qry1.First;
sGameID := qry1['GameID'];
sGameName := qry1['GameName'];
sPlatform := qry1['Platform'];
qry1.Close;
qry1.SQL.Text := 'INSERT INTO Library ([GameName],[GameID],[Platform],[UserID]) VALUES ("' + sGameName + '","' + sGameID + '","' + sPlatform + '","' + sLoggedInUser + '");';
qry1.ExecSQL;
qry1.SQL.Text := 'SELECT * FROM Library WHERE UserID = "' + sLoggedInUser + '";';
qry1.Open;
end;
我希望变量sGameName 被赋予列中的值,但所发生的只是弹出错误。
到目前为止,这只发生在该行。
【问题讨论】:
-
可能发生的情况是 GameName 列为空,由变体 Null by qry1 表示。逻辑是,由于该列为Null,因此无法转换为字符串,需要在尝试读取其字符串值之前检查该列是否包含Null。
标签: delphi variables variable-assignment