如何把数据库里的数据导出?(等了好久都没人帮我) (50分)

  • 主题发起人 主题发起人 ilyhk20
  • 开始时间 开始时间
I

ilyhk20

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下面的代码导出数据:
var
rs:variant;
begin
rs:=createoleobject(’adodb.recordset’);
rs.open(selectstring,dsnstring);
if not (rs.eof=true or rs.bof=true) then
rs.movefirst;
while rs.eof=false do
begin
combobox1.Items.Add(rs.fields[’发货人姓名’]);
rs.movenext;
end;
end;
不过现在的问题是:把所有的记录都显示出来了。要怎样才能使相同的姓名只显示一次?还有怎么样在combobox1的下拉菜单里选择一个姓名之后,可以自动把这个人的’地址’’电话’显示在edit里?
本人初学delphi,请各位多多帮忙!
 
SelectString := 'Select (distinct 发货人姓名) 姓名,... from TableName'
 
那第二个问题又如何解决?即我要在combobox1里选中一个人的姓名后,可以在edit里自动显示这个人的地址,电话等。
 
可以在Combobox1的onchange事件里写代码
先根据combobox1.text查找出相应的地址与电话
然后再赋给edit.text
 
可以在Combobox1的onchange事件里写代码
先根据combobox1.text查找出相应的地址与电话
然后再赋给edit.text
 
能不能说得详细一点?
 
在Combobox1的触发事件中,根据combobox1.text,用QUERY或则LOCATE来查找该人的相应记录,然后再赋给edit.text 。
 
能不能给出代码啊?
可不可以只用代码,而不用组件。
请各位多多帮忙啊!
 
在ONCHANGE里写
var
Temp :Tadoquery;
AA,BB,CC :STRING;
给Temp设置数据库的连接。
Temp.clear;
Temp.sql.add('SELECT 地址,电话 FROM TABLE WHERE 姓名 =....‘);
AA :=TEMP.FIELDBYNAME(地址'').VALUE;
BB :=TEMP.FIELDBYNAME('电话').VALUE;
edit1.text :='AA+BB';
 
请问怎么样给TEMP设置数据库连接啊(用代码)?
这才是我想要的。
如果换成是adotable又要怎么连接啊(用代码)?
我等了好多天了。请高手们支声一下。
 
用第三方控件,一切都可以解决了(Developer Express)[:D]
 
加上Temp.conntionstring:='???????????';就可以了
 
用第3方控件啊,很方便的,比如INFORPOWER3000对于这种实现很方便,都不需要写代码啊[:D]
 
那这些控件哪里有啊?
还有最好能给我代码。
因为有时用控件会受到很大的限制。
 
ADOQuery1.ConnectionString := 'Provider=SQLOLEDB.1;Password='
+trim(Edit2.Text)
+';Persist Security Info=True;User ID=sa'
+';Initial Catalog='+Conn_DataBase
+';Data Source='
+trim(Edit1.Text);
edit1和edit2就是你自己要输入的连接信息啦
 
可是运行后总是出现这个错误
[Warning] Unit2.pas(180): Variable 'temp' might not have been initialized
当我在combobox里选择一个姓名后又出现
Project project2.exe raised exception class EAccessViolation with message'Access
violation at address 0048BE12 in module 'Project2.exe',Read of address
00000038',Process stopped.Use Step or Run to continue.
请问我该怎么办?这是什么问题?
我在很多个论坛提问,怎么没人帮我?是这个问题太难,还是没人肯帮我!
 
VAR
TEMP:TADOQUERY;
BEGIN
TEMP:=TADOQUERY.CREATE(NIL);
TEMP.CONNECTION:=???;
TEMP.CLOSE;
TEMP.SQL.CLEAR;
TEMP.SQL.ADD('');
TEMP.EXECSQL;
............
END;
 
在combobox1的onchange中
var
str:variant;
begin
if not (AdoQuery1.Eof and AdoQuery1.Bof) then
begin
str:=combobox1.Text;
if str ='' then
str :=null;
if not AdoQuery1.Locate (EmployeeName,str ,[]) then
showmessage('无此记录'+EmployeeName+'='+EditSeek.Text)
Edit_Adress:=AdoQuery1.FieldByName('adress').Asstring;
Edit_PhoneNo:=AdoQuery1.FieldByName('PhoneNo').Asstring;
end;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
947
SUNSTONE的Delphi笔记
S
后退
顶部