參考資料1:[delphi]Delphi ADOQuery連接數據庫的查詢、插入、刪除、修改
參考資料2:請問有關動態建立ADOQuery的方法
uses ...., ADODB; //要使用TADOQuery必須在uses這裡先引用ADODB
procedure TForm1.ButIfClick(Sender: TObject);
var tmp: string;
var DMODULE:TDATAMODULE;
ADOQueryTmp1:TADOQuery;
begin
tmp:='';
InputQuery('查詢', '請輸入學號或姓名:', tmp);
tmp:=trim(tmp);
if tmp='' then
begin
ShowMessage('要查詢的資料不能為空白');
Exit;
end;
DMODULE := TDATAMODULE.Create(Application);
ADOQueryTmp1 := TADOQuery.Create(DMODULE);
ADOQueryTmp1.ConnectionString :='資料庫的連線字串';
with ADOQueryTmp1 do
begin
ADOQueryTmp1.Close;
ADOQueryTmp1.SQL.Clear;
{
//法1 開始==========================
//法1.用字串串字串的方式組合出SQL指令
ADOQueryTmp1.SQL.Text:='Select StudentID,StudentName from Student where StudentID=' + quotedstr(tmp) + ' or StudentName=' + quotedstr(tmp);
//法1 結束==========================
}
//法2 開始==========================
//建議使用法2
ADOQueryTmp1.SQL.Text:='Select StudentID,StudentName from Student where StudentID=:D1 or StudentName=:D2';
ADOQueryTmp1.Parameters.ParamByName('D1').Value:=tmp;
ADOQueryTmp1.Parameters.ParamByName('D2').Value:=tmp;
//法2 結束==========================
//ADOQuery.Open與ADOQuery.ExecSQL不同之處在於ADOQuery.Open一般用在Select查詢;而ADOQuery.ExecSQL用在insert、delete、update等。
ADOQueryTmp1.Open;
if ADOQueryTmp1.isempty=false then
begin
ShowMessage('有資料,姓名:' + ADOQueryTmp1.FieldByName('StudentName').AsString);
end;
ADOQueryTmp1.Close;
end;
end;
2019年10月1日 星期二
Delphi 字串切割
我所使用的環境是Delphi 7
以下是字串切割的程式碼:
var str_data: string;a: TStringList;
str_data := '0001 王小明'; //假如這是我的資料,0001是職員編號
a := TStringList.Create;
a.Delimiter := ' '; // 指定分割字元
a.DelimitedText := str_data; // 要被分割的字串
然後只要抓取a[0]就可以取得0001
以下是字串切割的程式碼:
var str_data: string;a: TStringList;
str_data := '0001 王小明'; //假如這是我的資料,0001是職員編號
a := TStringList.Create;
a.Delimiter := ' '; // 指定分割字元
a.DelimitedText := str_data; // 要被分割的字串
然後只要抓取a[0]就可以取得0001
2019年3月13日 星期三
Delphi 備忘錄
Chr(13) 代表換行;有時候在程式碼中,會有些字串希望可以換行,就可以使用Chr(13);也可以在程式碼中直接加上#13#10可以換行,例如:'ABCD'+#13#10+'EFGH'。
Chr(9) 代表Tab鍵,也可以輸入#9。
如果想在一個字串中加入單引號,必須打上兩個單引號,例如:'Hello~ 我是''王小明'''。
內建函數
1. IntToStr 數字轉字串;範例:IntToStr('2019') + 'Hello~'。
2. quotedstr 在字串前後加上單引號;範例:quotedstr('Hello~')。
3. Format 字串格式化;範例:Format('Hello 我是%s,我的專長是%s',['王小明','程式設計']),輸出的結果:Hello 我是王小明,我的專長是程式設計。
4. Exit 中斷執行。
快捷鍵
Delphi 7開發環境
Shift + Ctrl + U或 I 選取程式碼在按下快捷鍵,可增減縮排。
2019/10/02
InputQuery函數的提示文字有缺字
參考資料:inputbox的提示字字數會少SHOW出來
在程式碼中使用InputQuery函數,只要提示的字數到一定的長度,中文字就會有缺字的情況發生,要解決這個問題只要在FormCreate事件中設定DefFontData.Name為新細明體即可,程式碼如下。
procedure TfrmTEST1.FormCreate(Sender: TObject);
begin
....
DefFontData.Name := '新細明體';
....
end;
2019年1月12日 星期六
Windows Server 2008 R2 之 RPC 伺服器無法使用
公司有支小程式是使用C#寫的,專門處理AD(Active Directory),但最近因為Server的網路流量異常,公司同仁就把一些區域連線的設定拿掉,當我再次使用小程式要去修改AD時,就造成沒辦法順利新增或修改,直到我使用逐步執行找原因時,發現程式都會停在設定AD密碼這行程式碼,我也開始在網路上找資料都無法解決,直到我想起公司同仁有去設定區域連線的設定時,我將其中一項設定打勾,再次去執行程式就可以順利執行了,以下是我C#遇到的錯誤訊息。
C#錯誤訊息
System.Reflection.TargetInvocationException: 引動過程的目標傳回例外狀況
RPC 伺服器無法使用。 (發生例外狀況於 HRESULT: 0x800706BA)
解決方法
開啟網路和共用中心→區域連線→內容→勾選「File and Printer Sharing for Microsoft Networks」
以上是我遇到的問題,不見得各位也和我一樣遇到同樣的問題,但我還是在此特別紀錄一下。
C#錯誤訊息
System.Reflection.TargetInvocationException: 引動過程的目標傳回例外狀況
RPC 伺服器無法使用。 (發生例外狀況於 HRESULT: 0x800706BA)
解決方法
開啟網路和共用中心→區域連線→內容→勾選「File and Printer Sharing for Microsoft Networks」
以上是我遇到的問題,不見得各位也和我一樣遇到同樣的問題,但我還是在此特別紀錄一下。
訂閱:
文章 (Atom)