BMS-HOSxP Community
HOSxP => Delphi / Pascal => ข้อความที่เริ่มโดย: ittipol ที่ พฤศจิกายน 09, 2011, 11:00:19 AM
-
อาจารย์ทุกท่านนะครับ
คือผมอยากสร้างฐานข้อมูลที่บันทึกค่าแบบ
VN : 541109110504 แบบที่อาจารย์ทำในการ
ใช้งาน vn_stat นะครับไม่รู้ว่าต้องทำแบบไหนครับ
ขออาจารย์ทุกท่านแนะนำด้สนนะครับ
ขอบคุณครับ
-
-อยากสร้างฐานข้อมูล
CREATE DATABASE yourdatabasename;
-ที่บันทึกค่าแบบ VN : 541109110504 แบบที่อาจารย์ทำในการใช้งาน vn_stat
CREATE TABLE vn_stat ( VN INT);
insert into vn_stat (VN) value (541109110504);
-
คือแบบนี้นะครับ
จากที่เราเพิ่มข้อมูลไปในฐานข้อมูล
โปรแกรมก็จะให้ใส่ค่าตามลำดับ คือ 1,2,3,4
แต่ที่อยากได้คือให้บันทึกข้อมูลลงไปในแบบ VN : 5411100403048 นะครับ
ช่วยแนะนำแนะครับ ( ในการสร้างโปรแกรมจาก Delphi )
-
auto id generation เปล่า
-
repeat
vn := formatdatetime('eemmddhhnnss', now);
until ((getsqldata('select count(*) as cc from TABLEX where vn = "' + vn
+'"') = 0)
จาก ตย. source code hosxp อ.ชัยพร
vn ได้จาก formatdatetime function
แต่ต้อง checkไม่ให้ซ้ำ ใน table โดย loop repeat... until ...
แล้วจึงนำ vn ไปใช้ เป็น key fieldได้
-
ครับประมาณนี้ครับเดี่ยวผมทดลองทำครับ
ขอบคุณอาจารย์ครับ
-
repeat
vn := formatdatetime('eemmddhhnnss', now);
until ((getsqldata('select count(*) as cc from TABLEX where vn = "' + vn
+'"') = 0)
จาก ตย. source code hosxp อ.ชัยพร
vn ได้จาก formatdatetime function
แต่ต้อง checkไม่ให้ซ้ำ ใน table โดย loop repeat... until ...
แล้วจึงนำ vn ไปใช้ เป็น key fieldได้
นำไปใส่ตรงไหนคัรบ
-
เรียนอาจารย์ทุกท่านนะครับ
ผมต้องการ Add ข้อมูลใหม่นะครับ โดยให้เป็นแบบ VN
แต่ทดลองทำแล้ว มันไม่เริ่มต้นข้อมูลแบบว่างๆๆใหม่นะครับ
กลับเอาข้อมูลเดิมมาให้เราแก้ไขแทน เลยอยากให้อาจาร์ลองตรวจสอบดูให้หน่อยครับ
ขอคำแนะนำด้วยครับขอบคุณครับ
procedure TListVnForm.cxButton2Click(Sender: TObject);
begin //บันทึก
//if ListMyQuery.State in ([dsInsert,dsEdit]) then // บันทึกและแก้ไข้ข้อมูล
//MyQueryPersonnelAdd.edit;
//MyQueryPersonnel.fieldByName('personnel_id').AsInteger;
ListMyQuery.State in ([dsInsert,dsEdit]);
ListMyQuery.fieldByName('vn').Text;
//ListMyQuery.Insert;
DBEdit1.Text:=formatdatetime('eemmddhhmmss',now);
ListMyQuery.Post;
ShowMessage('เพิ่มข้อมูลสำเร็จ');
Close;
end;
-
เรียนอาจารย์ทุกท่านนะครับ
ผมต้องการ Add ข้อมูลใหม่นะครับ โดยให้เป็นแบบ VN
แต่ทดลองทำแล้ว มันไม่เริ่มต้นข้อมูลแบบว่างๆๆใหม่นะครับ
กลับเอาข้อมูลเดิมมาให้เราแก้ไขแทน เลยอยากให้อาจาร์ลองตรวจสอบดูให้หน่อยครับ
ขอคำแนะนำด้วยครับขอบคุณครับ
procedure TListVnForm.cxButton2Click(Sender: TObject);
begin //บันทึก
//if ListMyQuery.State in ([dsInsert,dsEdit]) then // บันทึกและแก้ไข้ข้อมูล
//MyQueryPersonnelAdd.edit;
//MyQueryPersonnel.fieldByName('personnel_id').AsInteger;
ListMyQuery.State in ([dsInsert,dsEdit]);
ListMyQuery.fieldByName('vn').Text;
//ListMyQuery.Insert;
DBEdit1.Text:=formatdatetime('eemmddhhmmss',now);
ListMyQuery.Post;
ShowMessage('เพิ่มข้อมูลสำเร็จ');
Close;
end;
ลองแนบไฟล์ โปรเจคมาวางดีไหมครับ แค่ event click ของ Button มันยังไม่เห็นภาพเท่าไหร่นะครับ
ปล.ผมก็กำลังหัดเขียนอยู่เหมือนกัน
-
ขอคำแนะนำด้วยนะครับ
จะพยายามครับ
ขอบคุณครับ
-
ที่ขึ้นข้อมูลเก่า เพราะคุณผูก Control (TDBEdit, TcxDBDateEdit) ไว้กับ Datasource (MyDataSource1)
ครับ ลองนำ DBNavigator มาวางแล้ว set datasource เป็น ตัวเดียวกัน ครับ
แต่ในระยะยาวผมขออนุญาติแนะนำดังนี้ครับ
1. ไม่ควรฝังค่า connection server ไว้ใน project ครับ พวก user password อะไรพวกนี้
2. การ Insert หรือ Add New น่าจะทำด้วยคำสั่ง sql command ไปเลยครับจะยีดหยุ่นกว่าครับ
อย่างไรก็เรียนรู้ร่วมกันครับ
-
ถึง ท่านfarmonline ครับ
ช่วยแนะนำตัวอย่างและโปรแกรมซักอันครับ
ผมจะได้นำมาเป็นตัวอย่างในการใช้งานครับ
ของตัวอย่างด้วยครับ
ขอบคุณอาจารย์ครับ
-
ไฟล์ของท่า ittipol ที่ผมลองนำมาแก้ครับ
-
ขอบคุณมากครับ
ต้องได้ซักวันนะครับ
-
อาจารย์ไม่ผ่านครับ
ติดที่
[DCC Error] VnProject.dpr(7): F1026 File not found: 'cxButtons.dcu'
ต้องแก้ไขยังงัยครับ
-
ต้องมี component ครับ cxButtons.dcu
-
ครับผม
ขอ component ครับ cxButtons.dcu
ด้วยครับ
-
เปลี่ยนเป็น Button ธรรมดาก็ได้ครับ จริงๆแล้วลบทิ้งก็ได้ครับ ผมวางไว้ว่าจะเขียนคำสั่งแต่ไม่ได้เขียน
-
ขอตัวอย่างแก้ไขใหม่ได้ไหมครับ
ยังไม่ผ่านเลยครับ
-
cxbutton เป็น component ที่คุณ ititpol ใช้อยู่แล้วนะครับ