[求助]数据库输出错误
delphi吧
全部回复
仅看楼主
level 6
華誼文娛 楼主
上代码就被度给当广告杀了,各位高人辛苦了,看看图吧。不知为啥输出不能,,,Btext数据库是备注类型,因为这个么?
2016年11月01日 20点11分 1
level 1
表id如果是自增字段的话,是长整型的,加了引号就变成字符了,不一致。另外,两个日期函数可以合并成DateTimeToStr函数,直接输出DateTimeToStr(now()),没必要中转。格式化输出可以用FormatDateTime函数。树的生成可以一次查询出来,也可以每层展开时再次查询。
try
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from table1';
ADOQuery1.Open;
except
MessageBox(handle,'查询失败!','警告',MB_OK+MB_ICONWarning);
Exit;
end;
if not ADOQuery1.IsEmpty then //判断结果集是否为空
begin
TreeView1.Items.Clear;
TreeView1.Items.Add(nil, '根节点');
ADOQuery1.First;
TreeView1.Items.BeginUpdate; //循环时禁止刷新组件
try
while not ADOQuery1.Eof do //循环添加子节点
begin
TreeView1.Items.AddChild(TreeView1.Items[0], ADOQuery1.FieldByName('field1').AsString);
ADOQuery1.Next;
end;
finally
TreeView1.Items.EndUpdate;
end;
if TreeView1.Items.Count>0 then
TreeView1.Items[0].Expand(False); //展开第一级树
end;
2016年11月02日 06点11分 2
万分感谢!刚才那个错误解决了就是你说的这个问题后面这几个问题真是太好了!!万分感谢!!!
2016年11月02日 06点11分
请问您知道synedit的换行符号是什么吗?
#13#
10在这里不好使
2016年11月02日 06点11分
@華誼文娛 可以用,你可能写错了。也可以用chr(13),chr(10)。
2016年11月02日 07点11分
这个'''系列的问题初期真是让人头痛,,,具体见下图
2016年11月02日 07点11分
level 6
華誼文娛 楼主
纠结郁闷中,,, ID是acc默认的长整型自增数列 我将BI定义为字符串 然后这样引用可以通过
我将BI定义成长整型 然后这样引用就不通过......
说字段不兼容。。。。。这是为虾米?? (上面两图为了便于观看中间有删减)
2016年11月02日 07点11分 3
level 1
Delphi是一种语言,SQL是另一种语言,要分清类型是在哪个语言里识别的。
Delphi中Add语句要求是字符串类型,所以你加一个整数肯定通不过。你加引号字符能通过,但在SQL语言里引号把数字变成字符又与表字段类型不一致,运行时数据库就会检查。
所以应该这样写:Bi还是整型,SQL.Add('where id ='+inttostr(Bi));
也可以用另一种传参数的方法,它的好处是不用考虑引号:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from table1 where field1=:a');
ADOQuery1.Parameters.ParamByName('a').Value:=同类型参数值;
ADOQuery1.Open;
2016年11月02日 08点11分 4
十分感谢 ~~~!!!!
2016年11月02日 08点11分
@華誼文娛 啰嗦一句 a 要多声明一个变量吧?
2016年11月02日 08点11分
@華誼文娛 var a,bi:integer;
2016年11月02日 08点11分
三条兄长 为何 field1=:a' 这里 的a 前面有个 : ?
2016年11月05日 17点11分
1