Guest User

bwrightprojdump

a guest
Feb 24th, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.58 KB | None | 0 0
  1. unit addeditunit;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8. Classes, SysUtils, FileUtil, Forms, PoultryUnit, diseaseunit, Controls, poultrycoopclass,
  9. Graphics, Dialogs, StdCtrls, ExtCtrls, fgl, mainmenunit2, sqldb,sqlite3conn,Poultrydiseaseclass,LCLType;
  10.  
  11. type
  12. poultrylist =Specialize TFPGObjectList<PoultryObj>;
  13. diseaselist = Specialize TFPGObjectlist<DiseaseObj>;
  14. birddiseaselist = Specialize TFPGObjectlist<BirdSickEntry>;
  15. PCList = Specialize TFPGObjectlist<PoultryCoopObj>;
  16. { TAddform }
  17.  
  18. TAddform = class(TForm)
  19. delPCdate: TEdit;
  20. delPDdate: TEdit;
  21. DiseaseIDlbl: TLabel;
  22. DiseaseIDlbl1: TLabel;
  23. DiseaseIDlbl2: TLabel;
  24. Diseasenmlabl: TLabel;
  25. Dsymptomslbl: TLabel;
  26. delPCpID: TEdit;
  27. Feedbacklbl1: TLabel;
  28. Feedbacklbl3: TLabel;
  29. Image1: TImage;
  30. Image2: TImage;
  31. Label1: TLabel;
  32. Feedbacklbl2: TLabel;
  33. Feedbacklbl4: TLabel;
  34. dateaddlbl: TLabel;
  35. Diagnosislbl: TLabel;
  36. Packagelbl1: TLabel;
  37. newpccdlbl: TLabel;
  38. newPCPlbl: TLabel;
  39. newPCPlbl1: TLabel;
  40. Packagelbl2: TLabel;
  41. PFeedback: TLabel;
  42. Specieslbl: TLabel;
  43. NewBirdSubmit: TButton;
  44. NewDiseaseSubmit: TButton;
  45. NewPCsubmit: TButton;
  46. NewPDsubmit: TButton;
  47. DelPoultry: TButton;
  48. delDiseaseSubmit: TButton;
  49. DelPCsubmit: TButton;
  50. delPDSubmit: TButton;
  51. NewDSpecies: TComboBox;
  52. NewPSpecies: TComboBox;
  53. NewPID: TEdit;
  54. NewPCpID: TEdit;
  55. NewPCcID: TEdit;
  56. NewPCEntrydate: TEdit;
  57. NewPDpID: TEdit;
  58. NewPDdID: TEdit;
  59. NewPDDiagnoisdate: TEdit;
  60. delPID: TEdit;
  61. delDID: TEdit;
  62. delPCcID: TEdit;
  63. delPDpID: TEdit;
  64. delPDdID: TEdit;
  65. NewPBreed: TEdit;
  66. NewPColoring: TEdit;
  67. NewPName: TEdit;
  68. NewPHatchdate: TEdit;
  69. NewDID: TEdit;
  70. NewDName: TEdit;
  71. NewDSymptoms: TEdit;
  72. Middledivider: TGroupBox;
  73. Maintitle: TLabel;
  74. PIDlabel: TLabel;
  75. Speclabel: TLabel;
  76. Breedlabel: TLabel;
  77. Colorlabel: TLabel;
  78. Namelabel: TLabel;
  79. Hatchlabel: TLabel;
  80. PIDlblEDIT: TLabel;
  81. Rightlabel: TPanel;
  82. Panel2: TPanel;
  83. Panel3: TPanel;
  84. Panel4: TPanel;
  85. Leftlabel: TPanel;
  86. SQLQuery1: TSQLQuery;
  87. SQLTransaction1: TSQLTransaction;
  88. procedure DelPCsubmitClick(Sender: TObject);
  89. procedure delDiseaseSubmitClick(Sender: TObject);
  90. procedure delPDSubmitClick(Sender: TObject);
  91. procedure DelPoultryClick(Sender: TObject);
  92. procedure FormCreate(Sender: TObject);
  93. procedure NewBirdSubmitClick(Sender: TObject);
  94. procedure NewDiseaseSubmitClick(Sender: TObject);
  95. procedure NewDSpeciesChange(Sender: TObject);
  96. procedure NewPCsubmitClick(Sender: TObject);
  97. procedure NewPDsubmitClick(Sender: TObject);
  98. procedure NewPIDChange(Sender: TObject);
  99. procedure RightlabelClick(Sender: TObject);
  100.  
  101. private
  102. { private declarations }
  103. public
  104. function FindPID(target:integer):integer;
  105. end;
  106.  
  107. var
  108. Addform: TAddform;
  109. mainlist:poultrylist;
  110. diseases:diseaselist;
  111. poultrydisease:birddiseaselist;
  112. poultrycoop:PClist;
  113.  
  114. implementation
  115. { TAddform }
  116. {$R *.lfm}
  117.  
  118.  
  119. //Add procedures
  120. procedure Sortlist_p(var List:poultrylist); //sorts the poultry list
  121. var
  122. Currentptr,pointer:integer;
  123. first,last:integer;
  124. CurrentVal:PoultryObj;
  125.  
  126. begin
  127. first:=0;
  128. last:=List.Count-1;
  129. For CurrentPtr:= First+1 to Last do
  130. begin
  131. CurrentVal:= List[CurrentPtr];
  132. Pointer:= CurrentPtr-1;
  133. while (pointer>-1) and (List[pointer].GetID() > CurrentVal.GetID) do
  134. begin
  135. List[Pointer+1]:=List[Pointer];
  136. pointer:=Pointer-1 ;
  137. end;
  138. List[pointer+1]:=CurrentVal;
  139. end;
  140. end;
  141.  
  142. procedure Sortlist_d(var List:diseaselist); //Sorts the diseases list
  143. var
  144. Currentptr,pointer:integer;
  145. first,last:integer;
  146. CurrentVal:Diseaseobj;
  147.  
  148. begin
  149. first:=0;
  150. last:=List.Count-1;
  151. For CurrentPtr:= First+1 to Last do
  152. begin
  153. CurrentVal:= List[CurrentPtr];
  154. Pointer:= CurrentPtr-1;
  155. while (pointer>-1) and (List[pointer].GetID() > CurrentVal.GetID) do
  156. begin
  157. List[Pointer+1]:=List[Pointer];
  158. pointer:=Pointer-1 ;
  159. end;
  160. List[pointer+1]:=CurrentVal;
  161. end;
  162. end;
  163.  
  164. procedure Sortlist_pd(var List:birddiseaselist); //Sorts the BirdDiseaseList
  165. var
  166. Currentptr,pointer:integer;
  167. {CurrentID,}first,last:integer;
  168. CurrentVal:BirdSickEntry;
  169.  
  170. begin
  171. first:=0;
  172. last:=List.Count-1;
  173. For CurrentPtr:= First+1 to Last do
  174. begin
  175. CurrentVal:= List[CurrentPtr];
  176. Pointer:= CurrentPtr-1;
  177. while (pointer>-1) and (List[pointer].GetPID() > CurrentVal.GetPID) do
  178. begin
  179. List[Pointer+1]:=List[Pointer];
  180. pointer:=Pointer-1 ;
  181. end;
  182. List[pointer+1]:=CurrentVal;
  183. end;
  184. end;
  185.  
  186. function binarySearch_p(list:poultrylist;low,high:integer;target:integer):integer;
  187. var
  188. middle:integer;
  189. begin
  190. middle := (low+high) div 2 ;
  191. Showmessage(IntToStr(list[middle].GetID));
  192. Showmessage(IntToStr(target));
  193. if( low>high ) then
  194. begin
  195. binarySearch_p:=-1;
  196. end
  197. else if target = list[middle].GetID then
  198. begin
  199. binarySearch_p:= middle;
  200.  
  201. end
  202. else if target < list[middle].GetID then
  203. begin
  204.  
  205. binarySearch_p:=BinarySearch_p(list,low,middle-1,target);
  206. end
  207. else
  208. begin
  209.  
  210. binarySearch_p:=BinarySearch_p(list,middle+1,high,target);
  211. end;
  212. end;
  213. function findPID_real(target:integer):integer;
  214. var
  215. x,idgotten:integer;
  216. begin
  217. findPID_real:=-1;
  218. //for x:= 0 to mainlist.count-1 do
  219. // begin
  220. x:=0;
  221. idgotten:=0;
  222. repeat
  223. idgotten:=mainList[x].GetID;
  224.  
  225. //showmessage('GetID '+IntToStr(x)+'= '+IntToStr(idgotten));
  226.  
  227. if ( idgotten = target) then
  228. begin
  229. findPID_real:=x;
  230.  
  231. end;
  232. x:=x+1
  233. until( x = (mainlist.count-1)) or (findPID_real <> -1);
  234.  
  235.  
  236. //end;
  237. end;
  238.  
  239. function TAddform.FindPID(target:integer):integer;
  240. //searches poultrylist for poultryObjs with the ID equal to 'target' parameter
  241. begin
  242. Sortlist_p(mainlist);
  243. //FindPID:= binarySearch_p(mainlist,0,mainlist.count-1,target)
  244. FindPID:=findPID_real(target);
  245. end;
  246. function FindDID(target:integer):integer;
  247. var
  248. x:integer;
  249. begin
  250. Sortlist_d(diseases);
  251. findDID:=-1;
  252. for x:= 0 to diseases.count-1 do
  253. begin
  254. if diseases[x].GetID = target then
  255. findDID:=target;
  256. end;
  257. end;
  258.  
  259. function ValidateNewBird(ID:integer;Species,Breed,Coloring,Name,Hatchdate:string):boolean;
  260. var
  261. tempdate:string;
  262. begin
  263. ID:=StrToInt(AddForm.NewPID.text);
  264. Species:=Addform.NewPSpecies.text;
  265. Breed:= Addform.NewPBreed.text;
  266. Coloring:= Addform.NewPColoring.text;
  267. Name:= Addform.NewPName.text;
  268. Hatchdate:= Addform.NewPHatchdate.text;
  269. ValidateNewBird:= false;
  270. if(ID<0) or (ID>999) then //PoultryID invalid
  271. begin
  272. showmessage('The Poultry ID entered is too large or small!');
  273. Addform.Feedbacklbl1.caption:='Entry failed!';
  274. exit;
  275. end;
  276. if( Addform.FindPID(ID)>-1 ) then //PoultryID exists already
  277. begin
  278. showmessage('The Poultry ID entered is already taken!');
  279. Addform.Feedbacklbl1.caption:='Entry failed!';
  280. exit;
  281. end;
  282. if( Species = '') then //species must be present
  283. begin
  284. showmessage('You must enter a species for the bird!');
  285. Addform.Feedbacklbl1.caption:='Entry failed!';
  286. exit;
  287. end;
  288. if (Length(Breed) <1) or (Length(breed) >30) then //30-char limit
  289. begin
  290. showmessage('Breed name too long or short.');
  291. Addform.Feedbacklbl1.caption:='Entry failed!';
  292. exit;
  293. end;
  294. if (Length(Coloring) <1) or (Length(Coloring) >40) then //40-char limit
  295. begin
  296. showmessage('Description of coloring too long or short.');
  297. Addform.Feedbacklbl1.caption:='Entry failed!';
  298. exit;
  299. end;
  300. if (Length(Name) >30) then //30-char limit, presence not required
  301. begin
  302. showmessage('Name too long or too short.');
  303. Addform.Feedbacklbl1.caption:='Entry failed!';
  304. exit;
  305. end; //following line formats input into format for StrToDate
  306. tempdate:= (Hatchdate[1]+Hatchdate[2]+Hatchdate[3]+Hatchdate[4]+Hatchdate[5]+'/20'+Hatchdate[7]+Hatchdate[8]);
  307. if ( StrToDate(tempdate) >(Date) )then
  308. begin
  309. showmessage('You cannot enter a future date as a chickens hatch date!');
  310. Addform.Pfeedback.Caption:=(tempdate+' '+ DatetoStr(Date));
  311.  
  312. exit;
  313. end;
  314. ValidateNewBird:= true;
  315. end;
  316. Function ValidateNewDisease():boolean;
  317. var
  318. ID:integer;
  319. DName,Symptoms,Target:string;
  320. Specific:Boolean;
  321. begin
  322. //bool setting
  323. Specific:=false;
  324. ValidateNewDisease:= false;
  325.  
  326. ID:=StrToInt(Addform.NewDID.text);
  327. DName:= Addform.NewDName.text;
  328. Symptoms:= Addform.NewDSymptoms.text;
  329. Target:= '';
  330. if(Addform.NewDSpecies.text <> '') then
  331. begin
  332. Target:= Addform.NewDSpecies.text;
  333. Specific:= true;
  334. end;
  335.  
  336. if(ID < 1) or (ID >99) then
  337. begin
  338. showmessage('Invalid ID entered. Numbers must be 0-99');
  339. exit;
  340. end;
  341. if(FindDID(ID)>-1) then
  342. begin
  343. showmessage('That ID has already been used.');
  344. exit;
  345. end;
  346. if(Length(Dname) > 15) then
  347. begin
  348. showmessage('The entered name is too long.');
  349. exit;
  350. end;
  351. if(Length(Symptoms) > 150 )then
  352. begin
  353. showmessage('The entered set of symptoms is too long');
  354. exit;
  355. end;
  356. ValidateNewDisease:= true
  357.  
  358. end;
  359. function ValidateInfectionNew:boolean;
  360. var
  361. tempdate,Hatchdate:string;
  362. Mainlistget:string;
  363. diseasespecget:string;
  364. diseaseIDget:string;
  365. begin
  366. if FindPID_real(StrToInt(Addform.NewPDpID.text)) <> -1 then
  367. mainlistget:= Mainlist[FindPID_real(StrToInt(Addform.NewPDpID.text))].GetSpecies;
  368.  
  369. if( length(Addform.NewPDpID.Text) > 3) then
  370. begin
  371. showmessage('The entered PoultryID is too large')
  372. end
  373. else if(length(Addform.NewPDpID.Text) < 1 )then
  374. begin
  375. showmessage('The entered PoultryID is too small')
  376. end
  377. else if( length(Addform.NewPDdID.Text) > 3) then
  378. begin
  379. showmessage('The entered Disease ID is too large')
  380. end
  381. else if(length(Addform.NewPDdID.Text) < 1 )then
  382. begin
  383. showmessage('The entered Disease ID is too small')
  384. end
  385. else if( mainlistget <> diseasespecget ) and (diseaseIDget <> '' )then
  386. showmessage('The entered bird is the wrong species to have this disease.')
  387. else
  388. begin
  389.  
  390. hatchdate:=Addform.NewPDDiagnoisdate.text;
  391. tempdate:= (Hatchdate[1]+Hatchdate[2]+Hatchdate[3]+Hatchdate[4]+Hatchdate[5]+'/20'+Hatchdate[7]+Hatchdate[8]);
  392. if(StrToDate(tempdate)>Date()) then
  393. begin
  394. showmessage('You cannot have diagnosed the bird at a future date!');
  395. exit;
  396. end;
  397. ValidateInfectionNew:=true;
  398. end
  399.  
  400.  
  401. end;
  402. function findCID(target:integer):integer;
  403. var
  404. x:integer;
  405. begin
  406. findCID:=-1;
  407. for x:= 0 to poultrycoop.count-1 do
  408. begin
  409. if poultrycoop[x].getCID = target then
  410. findCID:=1;
  411. end;
  412. end;
  413.  
  414. function ValidateCoopNew:boolean;
  415. var
  416. tempdate,entrydate:string;
  417.  
  418. begin
  419. entrydate:= Addform.NewPCEntrydate.text;
  420. ValidateCoopNew:=True;
  421. tempdate:= (entrydate[1]+entrydate[2]+entrydate[3]+entrydate[4]+entrydate[5]+'/20'+entrydate[7]+entrydate[8]);
  422. if( length(Addform.NewPCpID.text)>3) then
  423. begin
  424. showmessage('Poultry ID too great');
  425. ValidateCoopNew:=false;
  426. exit;
  427.  
  428. end
  429. else if length(Addform.NewPCpID.text)<1 then
  430. begin
  431. showmessage('Poultry ID too small');
  432. ValidateCoopNew:=false;
  433. exit;
  434. end
  435. else if length(Addform.NewPCcID.text)>2 then
  436. begin
  437. showmessage('Coop ID too great');
  438. ValidateCoopNew:=false;
  439. exit;
  440. end
  441. else if length(Addform.NewPCcID.text)<1 then
  442. begin
  443. showmessage('Coop ID too small.');
  444. ValidateCoopNew:=false;
  445. exit;
  446. end
  447.  
  448. else if StrToDate(tempdate)>Date() then
  449. begin
  450. showmessage('You cannot add a chicken to a coop in the future');
  451. ValidateCoopNew:=false;
  452. exit;
  453. end;
  454.  
  455. end;
  456.  
  457. //Button procedures
  458. procedure TAddform.NewDSpeciesChange(Sender: TObject);
  459. begin
  460.  
  461. end;
  462.  
  463. procedure TAddform.NewPCsubmitClick(Sender: TObject);
  464. var
  465. PID,CID:Integer;
  466. entrydate:string;
  467. begin //submits an entry into the poultry coop table.
  468. PID:=StrToInt(Addform.NewPCpID.Text);
  469. CID:=StrToInt(Addform.NewPCcID.Text);
  470. entrydate:=Addform.NewPCEntrydate.text;
  471. if(ValidateCoopNew) then
  472. begin
  473. //add instantiation to list
  474. poultrycoop.Add(PoultryCoopObj.Create(PID,CID,entrydate,''));
  475. //sql
  476. MainmenuForm.SQLQuery1.close;
  477. MainmenuForm.SQLQuery1.SQL.Text:='INSERT INTO Poultrycoop(PoultryID,CoopID,DateEntered) VALUES (:Pid,:Cid,:DateEnt)';
  478. //params
  479. mainMenuForm.SQLQuery1.Params.ParamByName('Pid').asInteger:=PID;
  480. mainMenuForm.SQLQuery1.Params.ParamByName('Cid').asInteger:=CID;
  481. mainMenuForm.SQLQuery1.Params.ParamByName('DateEnt').asString:=entrydate;
  482.  
  483. //closedown
  484. MainMenuForm.SQLite3Connection1.Connected:= True;
  485. MainMenuForm.SQLTransaction1.Active := true;
  486. MainMenuForm.SQLQuery1.execSQL;
  487. MainMenuForm.SQLtransaction1.commit;
  488. MainMenuForm.SQLtransaction1.action:=caCommit;
  489. MainMenuForm.SQLQuery1.close;
  490. Addform.Feedbacklbl3.Caption:=IntToStr(PID)+' '+IntToStr(CID)+' '+entrydate+' added!';
  491.  
  492.  
  493. end;
  494. end;
  495.  
  496. procedure TAddform.NewPDsubmitClick(Sender: TObject);
  497. var
  498. PID,DID:integer;
  499. DiagDate:string;
  500.  
  501. begin
  502. PID:=StrToInt(Addform.NewPDpID.Text);
  503. DID:=StrToInt(Addform.NewPDdID.Text);
  504. DiagDate:= Addform.NewPDDiagnoisdate.Text;
  505.  
  506. if(ValidateInfectionNew)then
  507. begin
  508.  
  509. poultrydisease.Add(BirdSickEntry.Create(StrToInt(Addform.NewPDpID.Text),StrToInt(Addform.NewPDdID.Text),Addform.NewPDDiagnoisdate.Text));
  510. //feedback here?
  511.  
  512. //sql start
  513. Mainmenuform.SQLQuery1.Close;
  514. Mainmenuform.SQLQuery1.SQL.Text:=' INSERT INTO Poultrydisease(DiseaseID,PoultryID,Dateidentified,Treated)';
  515. Mainmenuform.SQLQuery1.SQL.Text:=Mainmenuform.SQLQuery1.SQL.Text+ 'VALUES(:dID,:pID,:Dateident,:Treated)';
  516. mainMenuForm.SQLQuery1.Params.ParamByName('dID').asInteger:=DID;
  517. mainMenuForm.SQLQuery1.Params.ParamByName('pID').asInteger:=PID;
  518. mainMenuForm.SQLQuery1.Params.ParamByName('Dateident').asString:=DiagDate;
  519. mainMenuForm.SQLQuery1.Params.ParamByName('Treated').AsBoolean:=false;
  520. MainMenuForm.SQLite3Connection1.Connected:= True;
  521. MainMenuForm.SQLTransaction1.Active := true;
  522. MainMenuForm.SQLQuery1.execSQL;
  523. MainMenuForm.SQLtransaction1.commit;
  524. MainMenuForm.SQLtransaction1.action:=caCommit;
  525. MainMenuForm.SQLQuery1.close;
  526. Addform.Feedbacklbl4.Caption:='Entry '+IntToStr(PID)+'/'+IntToStr(DID)+'/'+DiagDate+' added!';
  527. end
  528. else
  529.  
  530.  
  531. end;
  532.  
  533. procedure TAddform.NewBirdSubmitClick(Sender: TObject);
  534. var
  535. ID:integer;
  536. Species,Breed,Coloring,nName,Hatchdate:string;
  537. begin
  538.  
  539. ID:=StrToInt(AddForm.NewPID.text);
  540. Species:=Addform.NewPSpecies.text;
  541. Breed:= Addform.NewPBreed.text;
  542. Coloring:= Addform.NewPColoring.text;
  543. nName:= Addform.NewPName.text;
  544. Hatchdate:= Addform.NewPHatchdate.text;
  545. if( ValidateNewBird(ID,Species,Breed,Coloring,nName,Hatchdate))then
  546. begin
  547.  
  548. //add to poultrylist
  549.  
  550. mainlist.Add(PoultryObj.Create(ID,Species,Breed,Coloring,nName,Hatchdate,' '));
  551. Feedbacklbl1.Caption:= IntToStr(ID)+' Working...';
  552.  
  553. //SQL
  554. MainMenuForm.SQLQuery1.Close;
  555. MainMenuForm.SQLQuery1.SQL.Text := 'INSERT INTO Poultry(PoultryID,Species,Breed,Colouring,Name,Hatchdate,Feed)';
  556. MainMenuForm.SQLQuery1.SQL.Text := MainMenuForm.SQLQuery1.SQL.Text + ' VALUES(:ID,:Species,:Breed,:Coloring,:Name,:Hatchdate,:FeedType)';
  557. MainMenuForm.SQLQuery1.Params.ParamByName('ID').AsInteger:=ID;
  558. MainMenuForm.SQLQuery1.Params.ParamByName('Species').AsString:=Species;
  559. MainMenuForm.SQLQuery1.Params.ParamByName('Breed').AsString:=Breed;
  560. MainMenuForm.SQLQuery1.Params.ParamByName('Coloring').AsString:=Coloring;
  561. MainMenuForm.SQLQuery1.Params.ParamByName('Name').AsString:=nName;
  562. MainMenuForm.SQLQuery1.Params.ParamByName('Hatchdate').AsString:=Hatchdate;
  563. MainMenuForm.SQLQuery1.Params.ParamByName('Feedtype').AsString:='';
  564. Feedbacklbl1.Caption:= MainMenuForm.SQLQuery1.SQL.Text;
  565. MainMenuForm.SQLite3Connection1.Connected:= True;
  566. MainMenuForm.SQLTransaction1.Active := true;
  567. MainMenuForm.SQLQuery1.execSQL;
  568. MainMenuForm.SQLtransaction1.commit;
  569. MainMenuForm.SQLtransaction1.action:=caCommit;
  570. MainMenuForm.SQLQuery1.close;
  571. Feedbacklbl1.Caption:= IntToStr(ID)+' Entry successfully added!';
  572. end;
  573. end;
  574.  
  575. procedure TAddform.NewDiseaseSubmitClick(Sender: TObject);
  576. var
  577. ID:integer;
  578. DName,Symptoms,Target:string;
  579. Specific:Boolean;
  580. targetfill:string;
  581. begin
  582. Specific:=false;
  583. // transfers to proc
  584. ID:=StrToInt(Addform.NewDID.text);
  585. DName:= Addform.NewDName.text;
  586. Symptoms:= Addform.NewDSymptoms.text;
  587. Target:= ' ';
  588. if(Length(Addform.NewDSpecies.text)>0) then
  589. begin
  590. Target:= Addform.NewDSpecies.text;
  591. Specific:= true;
  592. targetfill:=Addform.NewDSpecies.text;
  593. end;
  594. //validate
  595. If( ValidateNewDisease) then
  596. begin
  597. // Create obj & instantiate
  598. Diseases.Add(DiseaseObj.Create(ID,DName,Symptoms,Specific,Target));
  599.  
  600.  
  601.  
  602. // prep for sql
  603. MainMenuForm.SQLQuery1.close;
  604. targetfill:='';
  605. if Target = '' then
  606. MainMenuForm.SQLQuery1.SQL.text:= 'INSERT INTO Diseases(DiseaseID,Name,Symptoms,Specific,TargetSpecies) VALUES(:DiseaseID,:Name,:Symptoms,:Specific,:Blank)'
  607. else
  608. MainMenuForm.SQLQuery1.SQL.text:= 'INSERT INTO Diseases(DiseaseID,Name,Symptoms,Specific,TargetSpecies) VALUES(:DiseaseID,:Name,:Symptoms,:Specific,:XTarget)';
  609.  
  610. MainMenuForm.SQLQuery1.Params.ParamByName('DiseaseID').AsInteger:=ID;
  611. MainMenuForm.SQLQuery1.Params.ParamByName('Name').AsString:=Dname;
  612. MainMenuForm.SQLQuery1.Params.ParamByName('Symptoms').AsString:=Symptoms;
  613. MainMenuForm.SQLQuery1.Params.ParamByName('Specific').AsBoolean:=Specific;
  614.  
  615.  
  616. if( Target <> '') then
  617. MainMenuForm.SQLQuery1.Params.ParamByName('XTarget').AsString:=Target
  618. else
  619. MainMenuForm.SQLQuery1.Params.ParamByName('Blank').AsString:=targetfill;
  620.  
  621.  
  622. MainMenuForm.SQLite3Connection1.Connected:= True;
  623. MainMenuForm.SQLTransaction1.Active := true;
  624. MainMenuForm.SQLQuery1.execSQL;
  625. MainMenuForm.SQLtransaction1.commit;
  626. MainMenuForm.SQLtransaction1.action:=caCommit;
  627. MainMenuForm.SQLQuery1.close;
  628. end;
  629.  
  630. end;
  631.  
  632.  
  633.  
  634. procedure TAddform.FormCreate(Sender: TObject);
  635. var
  636. newPoultryObj:PoultryObj;
  637. newDiseaseObj:DiseaseObj;
  638. begin
  639.  
  640. mainlist:=poultrylist.Create();
  641. diseases:=diseaselist.Create();
  642. poultrydisease:= birddiseaselist.Create();
  643. poultrycoop:=PCList.Create();
  644.  
  645.  
  646. //////////////////////
  647. //Initialising the population of the poultry list
  648. //////////////////////
  649.  
  650. //setup SQL
  651. MainMenuForm.SQLQuery1.Close;
  652. //select all from poultry
  653. MainMenuForm.SQLQuery1.SQL.Text := 'SELECT * FROM Poultry';
  654. MainMenuForm.SQLQuery1.Active:=true;
  655. while not MainMenuForm.SQLQuery1.eof do
  656. begin
  657. // go through, creating objects from the SQL
  658. newPoultryObj:=PoultryObj.Create(MainMenuForm.SQLQuery1.fields[0].AsInteger,MainMenuForm.SQLQuery1.fields[1].asstring,MainMenuForm.SQLQuery1.fields[2].asstring,MainMenuForm.SQLQuery1.fields[3].asstring,MainMenuForm.SQLQuery1.fields[4].asstring,MainMenuForm.SQLQuery1.fields[5].asstring,MainMenuForm.SQLQuery1.fields[6].asstring);
  659. // populate mainlist with objects
  660. mainlist.Add (newPoultryObj);
  661. MainMenuForm.SQLQuery1.next;
  662. end;
  663. MainMenuForm.sqlquery1.execsql;
  664. MainMenuForm.sqltransaction1.commit;
  665. MainMenuForm.sqltransaction1.action:=caCommit;
  666. MainMenuForm.sqlquery1.close;
  667.  
  668. //////////////////////
  669. //Initialising the population of the disease list
  670. //////////////////////
  671.  
  672. MainMenuForm.SQLQuery1.Close;
  673. MainMenuForm.SQLQuery1.SQL.Text := 'SELECT * FROM Diseases';
  674. MainMenuForm.SQLQuery1.Active:=true;
  675. while not MainMenuForm.SQLQuery1.eof do
  676. begin
  677. newDiseaseObj:=DiseaseObj.Create(MainMenuForm.SQLQuery1.fields[0].AsInteger,MainMenuForm.SQLQuery1.fields[1].asstring,MainMenuForm.SQLQuery1.fields[2].asstring,MainMenuForm.SQLQuery1.fields[3].AsBoolean,MainMenuForm.SQLQuery1.fields[4].asstring);
  678. // populate list with object
  679. diseases.Add (newDiseaseObj);
  680. MainMenuForm.SQLQuery1.next;
  681. end;
  682. MainMenuForm.sqlquery1.open;
  683. MainMenuForm.sqlquery1.execsql;
  684. MainMenuForm.sqltransaction1.commit;
  685. MainMenuForm.sqltransaction1.action:=caCommit;
  686. MainMenuForm.sqlquery1.close;
  687.  
  688. ////////////////////////////////////////////////////
  689. //Initialising the population of the poultrydisease list
  690. ////////////////////////////////////////////////////
  691.  
  692. MainmenuForm.SQLQuery1.Close;
  693. MainmenuForm.SQLQuery1.SQL.Text:= 'SELECT * FROM PoultryDisease';
  694. MainmenuForm.SQLQuery1.Active:=true;
  695. while not MainmenuForm.SQLQuery1.eof do
  696. begin
  697. poultrydisease.Add(BirdSickEntry.create(MainmenuForm.SQLQuery1.fields[1].AsInteger,MainmenuForm.SQLQuery1.fields[0].AsInteger,Mainmenuform.SQLQuery1.fields[2].AsString));
  698. MainmenuForm.SQLQuery1.next;
  699. end;
  700. MainMenuForm.sqlquery1.open;
  701. MainMenuForm.sqlquery1.execsql;
  702. MainMenuForm.sqltransaction1.commit;
  703. MainMenuForm.sqltransaction1.action:=caCommit;
  704. MainMenuForm.sqlquery1.close;
  705.  
  706. //////////////////////
  707. //Initialise the population of the poultrycoop list
  708. //////////////////////
  709.  
  710. MainmenuForm.SQLQuery1.Close;
  711. MainmenuForm.SQLQuery1.SQL.TEXT:= 'SELECT * FROM PoultryCoop';
  712. MainmenuForm.SQLQuery1.Active:=true;
  713. while not MainmenuForm.SQLQuery1.eof do
  714. begin
  715. poultrycoop.Add(PoultryCoopObj.create(MainmenuForm.SQLQuery1.Fields[0].AsInteger,MainmenuForm.SQLQuery1.Fields[1].AsInteger,MainmenuForm.SQLQuery1.Fields[2].AsString,MainmenuForm.SQLQuery1.Fields[3].Asstring));
  716. MainmenuForm.SQLQuery1.next;
  717. end;
  718. MainMenuForm.sqlquery1.open;
  719. MainMenuForm.sqlquery1.execsql;
  720. MainMenuForm.sqltransaction1.commit;
  721. MainMenuForm.sqltransaction1.action:=caCommit;
  722. MainMenuForm.sqlquery1.close;
  723.  
  724.  
  725. end;
Add Comment
Please, Sign In to add comment