Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
delphi中与sql数据读取器相同的方法是什么?_Sql_Delphi_Sqldatareader - Fatal编程技术网

delphi中与sql数据读取器相同的方法是什么?

delphi中与sql数据读取器相同的方法是什么?,sql,delphi,sqldatareader,Sql,Delphi,Sqldatareader,检索数据的方法是什么 SQLCmd.CommandText = "SELECT NAMA,SEKSYEN FROM STUDENT_INFORMATION WHERE MATRIC='" & TextBox1.Text & "'" rd = SQLCmd.ExecuteReader If rd.HasRows Then rd.Read() TextBox2.Text = rd.Item("NAMA").ToString TextBox3.Text = rd

检索数据的方法是什么

SQLCmd.CommandText = "SELECT NAMA,SEKSYEN FROM STUDENT_INFORMATION WHERE MATRIC='" & TextBox1.Text & "'"

rd = SQLCmd.ExecuteReader

If rd.HasRows Then
   rd.Read()

   TextBox2.Text = rd.Item("NAMA").ToString
   TextBox3.Text = rd.Item("SEKSYEN").ToString

   rd.Close()

Else
   TextBox2.Text = ""
   TextBox3.Text = ""
   MessageBox.Show("No Data!")

End If
我有一些。但不知道Delphi7中是否有类似于
SqlDataReader
的方法

with ADOQuery1 do
  begin
    SQL.Clear;
    SQL.Add('Select *');
    SQL.Add('from REPORT');
    SQL.Add('where CARD_ID = "' + card1.Text + '"');

    if  then
    begin
   Edit1.Text = rd.Item("SEKSYEN").AsString ;// wrong code trying to convert from above . not complete
   ComboBox1.Text = rd.Item("SEKSYEN").AsString;// wrong code trying to convert from above . not complete
   ComboBox2.Text = rd.Item("SEKSYEN").AsString ;// wrong code trying to convert from above . not complete
   Edit2.Text = rd.Item("SEKSYEN").AsString  ; // wrong code trying to convert from above . not complete
   end;

你能帮我吗?我卡住了

等效的
ExecuteReader
打开的
HasRows
IsEmpty
,从一行中读取单个列的方法是通过
FieldByName
使用
Fields
集合:

ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Select *');
ADOQuery1.SQL.Add('from REPORT');
ADOQuery1.SQL.Add('where CARD_ID = "' + card1.Text + '"');
ADOQuery1.Open;

if not ADOQuery1.IsEmpty then
begin
  Edit1.Text = ADOQuery1.FieldByName('SEKSYEN').AsString ;
  ComboBox1.Text = ADOQuery1.FieldByName('SEKSYEN').AsString;
  ComboBox2.Text = ADOQuery1.FieldByName('SEKSYEN').AsString ;
  Edit2.Text = ADOQuery1.FieldByName('SEKSYEN').AsString; 
end;

在打开数据集后,可以使用
adokery1.FieldByName('SEKSYEN').AsString
按名称访问字段。此时,您将站在数据集的第一条记录上。要获得下一条记录,请使用
ADOQuery.next
方法。我的意思是,您知道在delphi中hasrow/read中有任何替换吗?使用
query。首先
移动到第一条记录,然后检查
not query.EOF
以确保实际上至少有一条记录。在迭代数据集时自动读取行,因此,没有
Read
方法可供选择。请查看(->方法的文档,了解您所需的一切,并期待不同的行为。但是方法名称正在与您对话(
IsEmpty
而不是
HasRows