1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| procedure TfrmOracleSocket.ServerSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
sCodeBarre : String ;
begin
memServer.Lines.Add('Lecture des informations effectuées');
sCodeBarre := Socket.ReceiveText;
RenvoiRequete(sCodeBarre, OracleSession, OracleDataSet, DataSource, DBGrid, ClientDataSet, ServerSocket);
end;
procedure RenvoiRequete(sCodeBarre : String; OracleSession : TOracleSession; OracleDataSet : TOracleDataSet; DataSource : TDataSource; DBGrid : TDBGrid; ClientDataSet : TClientDataSet; ServerSocket : TServerSocket);
var
sRefXArt : String;
sLicXArt : String;
sQpsXArt : String;
sQcsXArt : String;
sQseXArt : String;
sApiXArt : String;
const CRLF =#$0D#$0A;
begin
OracleDataSet.SQL.Clear;
OracleDataSet.Close;
If not OracleSession.Connected then
begin
maDate := FormatDateTime('dd/mm/yyyy hh:nn:ss:z', Now);
WriteLog(maDate + ' Tentative de reconnexion...');
username := OracleSession.LogonUsername;
password := OracleSession.LogonPassword;
database := OracleSession.LogonDatabase;
OracleSession.LogOn;
ShowMessage('Connexion OK');
maDate := FormatDateTime('dd/mm/yyyy hh:nn:ss:z', Now);
WriteLog(maDate + ' Reconnexion OK');
end;
maDate := FormatDateTime('dd/mm/yyyy hh:nn:ss:z', Now);
WriteLog(maDate + ' Début exécution Requête');
OracleDataSet.SQL.Text := 'select REFXART,LICXART,QPSXART,QCSXART,QSEXART,APIXART from ARTXRES where CABXART=:codeBarre';
OracleDataSet.DeclareVariable('codeBarre',otString);
OracleDataSet.SetVariable('codeBarre', sCodeBarre);
DataSource.DataSet := OracleDataSet;
OracleDataSet.Open;
If OracleDataSet.Eof then
begin
OracleDataSet.SQL.Text := 'select REFXART,LICXART,QPSXART,QCSXART,QSEXART,APIXART from ARTXRES where GSPXART=:codeBarre';
OracleDataSet.DeclareVariable('codeBarre',otString);
OracleDataSet.SetVariable('codeBarre', sCodeBarre);
DataSource.DataSet := OracleDataSet;
DBGrid.DataSource := DataSource;
OracleDataSet.Open;
end;
If OracleDataSet.Eof then
begin
OracleDataSet.SQL.Text := 'select REFXART,LICXART,QPSXART,QCSXART,QSEXART,APIXART from ARTXRES where GCBXART=:codeBarre';
OracleDataSet.DeclareVariable('codeBarre',otString);
OracleDataSet.SetVariable('codeBarre', sCodeBarre);
DataSource.DataSet := OracleDataSet;
DBGrid.DataSource := DataSource;
OracleDataSet.Open;
end;
If OracleDataSet.Eof then
begin
OracleDataSet.SQL.Text := 'select REFXART,LICXART,QPSXART,QCSXART,QSEXART,APIXART from ARTXRES where GPAXART=:codeBarre';
OracleDataSet.DeclareVariable('codeBarre',otString);
OracleDataSet.SetVariable('codeBarre', sCodeBarre);
DataSource.DataSet := OracleDataSet;
DBGrid.DataSource := DataSource;
OracleDataSet.Open;
end;
// CopieDataSet(OracleDataSet, ClientDataSet);
// OracleDataSet.Master := nil;
// ClientDataSet.MasterSource := nil;
// DataSource.DataSet := ClientDataSet;
// DBGrid.DataSource := DataSource;
OracleDataSet.First;
While not OracleDataSet.Eof do
begin
sRefXArt := OracleDataSet.Fields[0].AsString;
sLicXArt := OracleDataSet.Fields[1].AsString;
sQpsXArt := OracleDataSet.Fields[2].AsString;
sQcsXArt := OracleDataSet.Fields[3].AsString;
sQseXArt := OracleDataSet.Fields[4].AsString;
sApiXArt := OracleDataSet.Fields[5].AsString;
ServerSocket.Socket.Connections[0].SendText('RefXArt :' + sRefXArt + 'LicXArt ' + sLicXArt + 'QpsXArt' + sQpsXArt + 'QcsXArt ' + sQcsXArt + 'ApiXArt ' + sApiXArt);
// ShowMessage('RefXArt :' + sRefXArt +CRLF+ ' LicXArt ' + sLicXArt +CRLF+ ' QpsXArt ' + sQpsXArt +CRLF+ ' QcsXArt ' + sQcsXArt +CRLF+ ' ApiXArt ' + sApiXArt);
OracleDataSet.Next;
end;
OracleDataSet.Close;
maDate := FormatDateTime('dd/mm/yyyy hh:nn:ss:z', Now);
WriteLog(maDate + ' Fin exécution requête');
end; |
Partager