DateTimePicker1.data和更新數據庫問題.請高手幫忙(100分)

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

itassist06

Unregistered / Unconfirmed
GUEST, unregistred user!
SELECT 姓名,工號 FROM 人事資料 WHERE 入廠日期 >DateTimePicker1.data
這時的日期條件語句怎樣寫

另外:下面的更新語句
procedure TForm1.Button1Click(Sender: TObject);
begin
WITH QUERY1 DO
BEGIN

SQL.CLEAR;
SQL.ADD('UPDATE part SET desc_=:a WHERE code_=:b');
PARAMBYNAME('a').ASSTRING := '商標圈(KI-151B)-100';
PARAMBYNAME('b').ASSTRING := '0201090101';
EXECSQL;

END;
END;
end.

保存是提示 "Table dose not exist or directory dose not exist"
這是因為什么呢

如果往一個表添加資料又是要怎么樣寫呢
 
怎么沒人
 
把两个日期转化成数字看哈呢~~~
我也没有试过,只是提哈意见,我是初学者
 
能不能有人具體的說下怎么寫,因為我是初學者,什麼斗不會
 
和使用的数据库有关,写法是不一样的。
请问是什么数据库呢?
 
sql數據庫
如果是access又是怎么樣
 
ACCESS 需使用‘#’,如:date=#05-1-30#
 
SELECT 姓名,工號 FROM 人事資料 WHERE datediff(day,入廠日期 ,'''+formatdatetime('yyyy-mm-dd',DateTimePicker1.date)+''')>0
 
WITH QUERY DO
BEGIN
SQL.CLEAR;
SQL.ADD('SELECT 姓名,工號 FROM 人事資料 WHERE 入廠日期 >:入廠日期');
PARAMBYNAME('入廠日期').ASDATETIME := DateTimePicker1.date;
OPEN;
END;
 
如果是ms sql ,
'SELECT 姓名,工號 FROM 人事資料 WHERE 入廠日期 >'''+formatdatetime('yyyy-mm-dd',DateTimePicker1.date)+'''';
如果是access
'SELECT 姓名,工號 FROM 人事資料 WHERE 入廠日期 >''#'+formatdatetime('yyyy-mm-dd',DateTimePicker1.date)+'#''';
 
另外請教一下我如果想通過一個保存按鈕來保存修改后的資料,更新語句怎么寫,假如想修改一下人事資料里的姓名字段,請幫忙.
 
WITH QUERY DO
BEGIN
SQL.CLEAR;
SQL.ADD('UPDATE 人事資料 SET 姓名=:姓名 WHERE 工號=:工號');
PARAMBYNAME('姓名').ASSTRING := 原始姓名;
PARAMBYNAME('工號').ASSTRING := 工號;
EXECSQL;
END;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
WITH QUERY1 DO
BEGIN

SQL.CLEAR;
SQL.ADD('UPDATE part SET desc_=:a WHERE code_=:b');
PARAMBYNAME('a').ASSTRING := '商標圈(KI-151B)-100';
PARAMBYNAME('b').ASSTRING := '0201090101';
EXECSQL;

END;
END;
end.

保存是提示 "Table dose not exist or directory dose not exist"
這是因為什么呢
 
你有没有给Query指定表Part所在的数据库呢?
 
Johnny_du不好意思,我之前是通過ADOConnection來連接數據庫的,現在用Query直接連結數據庫,已經OK了,為什麼通過ADOConnection來連接數據庫不行呢?

如果往一個表添加資料又是要怎么樣寫呢
 
应该不会啊!你用一个DataSource和一个DBGrid连接在这个Query上然后写上Select * from part,然后Open一下看有没有数据返回?
还有你的表名是Part吗??
 
begin
with Query1 do
begin
SQL.Clear;
SQL.Add('INSERT INTO 表名(字段1,字段2,...,字段n) VALUES(:字段1值,:字段2值,...,:字段n值)');
ParamByName('字段1值').AsString := 值1; //字符型字段
ParamByName('字段2值').AsDateTime := 值2; //日期型字段
...
ParamByName('字段n值').AsInteger := 值n; //整数型字段
try
ExecSQL;
except
ShowMessage('数据插入失败!');
Exit;
end;
end;
end;
 
WITH QUERY DO
BEGIN
SQL.CLEAR;
SQL.ADD('UPDATE 人事資料 SET 姓名=:姓名 WHERE 工號=:工號');
PARAMBYNAME('姓名').ASSTRING := 原始姓名;
PARAMBYNAME('工號').ASSTRING := 工號;
EXECSQL;
END;

如果把更改后的名字在edit的編輯框里改怎么寫,
我用PARAMBYNAME('姓名').ASSTRING := trim(edit.text); 不行.
 
用DataSource連接數據庫時,loginPrompt屬性為FALSE就可不輸入密碼,用QUERY直結連就會總出現提是輸入密碼
 
后退
顶部