Arsip: SQL : Select utk tipe data Number di Ms Access

 
user image
more 14 years ago

onsir

Bagaimana cara untuk mencari data dengan perintah SQL, dimana data yang sebagai criteria tsb bertipe Number di Ms-Access. CustomerID bertipe Number. Saya sdh coba spt ini tetapi masih eror

 sql1:='';
 sql1:='select * from orders where CustomerId= ' + QuotedStr(smdbgrid1.Fields[5].AsString);
              adoQuery1.SQL.Clear;
              adoQuery1.SQL.Add(sql1);
              adoQuery1.Open;
              if adoQuery1.Eof then //jika tidak ketemu atau tidak ada, lakukan insert data
                 begin
                 //proses simpan data
                 end
                else
                    begin
                    Application.MessageBox('Data sdh ada','Bintasy',mb_ok);
                    end;
 
user image
more 14 years ago

yayaretina

@onsir:

 sql1:='select  from orders where CustomerId= ' + QuotedStr(smdbgrid1.Fields[5].AsString);
 

sql1:='select   from orders where CustomerId= ' + smdbgrid1.Fields[5].AsInteger;
user image
more 14 years ago

bagussb

@onsir.. querynya sih sudah benar... @yayaretina... mm.. sql1 kan tipe datanya string.. kalo digabung dengan fields[x].asinteger bukannya bakal ada error baru.. :-D mmmm.. kalo menurut saya errornya karena smdbgrid1.Fields[5].AsString itu ngga ada valuenya.. jadinya hasilnya empty string alias ('')... kalo gini kan emang pasti error querynya.. :-D hi hi hi.. mudah2an beners..
user image
more 14 years ago

bagussb

eh.. ada yang kelewat kayanya... kalo tipe datanya number.. kenapa pake quotedstr yah....?
user image
more 14 years ago

onsir

masih gak bisa erronya spt ini, [Error] uAdmSales.pas(530): Incompatible types: 'String' and 'Integer' klw sy buat spt ini sql1:='select * from orders where CustomerId= ' + StrToInt(smdbgrid1.Fields[5].AsString); error juga
user image
more 14 years ago

yayaretina

coba pake dengan parameter..

sql1:='select * from orders where CustomerId= :custId';
..ParamByName('custId').AsInteger:=smdbgrid1.Fields[5].AsInteger
atau di coba dulu smdbgrid1.Fields[5].AsInteger diganti dengan nilai CustomerID yang sudah ada. klo bisa, harusnya script diatas juga bisa.. :D
user image
more 14 years ago

onsir

Ya, sdh bisa pake parameter.

sql1:='select * from orders where CustomerId = :custID';
                          sql1:=sql1 + ' and EmployeeID = :emplId';
                          sql1:=sql1 + ' and OrderDate =  :ordDate';
                          sql1:=sql1 + ' and PurchaseOrderNumber = :poId';
                          sql1:=sql1 + ' and ProductID = :prodId';
                          adoQuery1.SQL.Clear;
                          adoQuery1.SQL.Add(sql1);
                          adoQuery1.Parameters.ParamValues['custId']:=smdbgrid1.Fields[15].AsInteger;
                          adoQuery1.Parameters.ParamValues['emplId']:=smdbgrid1.Fields[16].AsString;
                          adoQuery1.Parameters.ParamValues['ordDate']:=smdbgrid1.Fields[0].AsDateTime;
                          adoQuery1.Parameters.ParamValues['poId']:=smdbgrid1.Fields[5].AsString;
                          adoQuery1.Parameters.ParamValues['prodId']:=smdbgrid1.Fields[17].AsString;
                          adoQuery1.Open;
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com