cho mình hỏi về truy xuất CSDL

xXchienthanXx

Mr & Ms Pac-Man
Tham gia ngày
17/11/06
Bài viết
129
Reaction score
0
cho mình hỏi , có cách nào để biết được tổng số dữ liệu có được sau khi truy vấn = SQL hay ko?

stickSQL = "Select * FROM Bai_Viet WHERE Stick=True"
stick.Open stickSQL

Và cách mình hay dùng để xem tổng dữ liệu là

i = 0
while not stick.eof
i = i + 1
stick.netx
wend
tong_dulieu = i

Đây là cách mình hay làm, nhưng ko biết có lệnh nào đếm tổng dữ liệu được hay ko. bởi cách này nếu dữ liệu lớn sẽ tốn bộ nhớ bạn nào biết chỉ dùm mình. cám ơn nhiều.

Câu hỏi tiếp theo của mình đó là, khi insert now() vào field ngay_thang thi được, nhưng nếu update now vào ngay_thang lại không được. nó luôn báo lỗi. có cách nào khắc phục được ko?
 
Đây là cách mình hay làm, nhưng ko biết có lệnh nào đếm tổng dữ liệu được hay ko. bởi cách này nếu dữ liệu lớn sẽ tốn bộ nhớ bạn nào biết chỉ dùm mình. cám ơn nhiều.

Mã:
 Select Count(*) FROM Bai_Viet WHERE Stick=True


Câu hỏi tiếp theo của mình đó là, khi insert now() vào field ngay_thang thi được, nhưng nếu update now vào ngay_thang lại không được. nó luôn báo lỗi. có cách nào khắc phục được ko?
Ví dụ:

Mã:
Update Example Set ColDate=getdate() where ColDate='5/29/2008 12:09:10 AM'
 
Chú ý : bạn có thể để trường ngay_thang có default = getDate() .
Như vậy khi insert ko cần nhập dữ liệu cho trường đó nữa (trong trường hợp trường đó dùng để lấy ngày tháng hiện tại cho phiếu xuất , v.v...)
 
thanks rất nhìu. đúng là những thứ mình cần. :D để mình thử xem
 
hic. mình thử mọi cách để xem kết quả khi truy vấn mà không được. cho mình hỏi tiếp. vậy làm sao để xem được kết quả vừa truy vấn?
 
hic. mình thử mọi cách để xem kết quả khi truy vấn mà không được. cho mình hỏi tiếp. vậy làm sao để xem được kết quả vừa truy vấn?

Dùng ngôn ngữ gì vậy bạn. Còn trong SQL Query Analyser thì kết quả trả về sẽ hiện ra mà :-/.
 
mình dùng asp để viết forum. mình muốn đếm tổng số = tong , và sau đó lấy mới làm điều kiện
if tong >= 50 then do A
if tong < 50 then do B
cái mình muốn tìm là xem tong bằng cách nào :p giúp mình với nhá.
mình thử response.write(...) lung tung mà không có cái nào trúng hết :p
 
mình theo link bạn đưa và viết code thế này

filePath = Server.MapPath("data/Du_Lieu_TacGia_TacPham.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
set rs = conn.execute("SELECT COUNT(ID_Tac_Gia) FROM Tac_Gia_List")
response.write rs("ID_Tac_Gia")

kết quả báo lỗi.
Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/tapchicuaviet/TacGia_TacPham.asp, line 27

bạn chỉ dùm mình sai ở đâu được không? thanks
 
Trời hỡi, nhắm mắt nhắm mũi copy paste mà không thèm đọc gì cả à =,=

Many people write a SQL statement like this:

<%
set conn = CreateObject("ADODB.Connection")
conn.open "<connection string>"
set rs = conn.execute("SELECT COUNT(column) FROM table")
response.write rs("column")
%>

And are confused when they get this error:

ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

This is because they weren't looking for "column" from the recordset, they were looking for an expression that represents the COUNT of "column" in the table. There are at least three ways to obtain values of aggregate functions from a recordset.

Mã:
set rs = conn.execute("SELECT COUNT(ID_Tac_Gia) FROM Tac_Gia_List")
response.write rs("ID_Tac_Gia")

-->

Mã:
set rs = conn.execute("SELECT COUNT(ID_Tac_Gia) AS IDTacGia FROM Tac_Gia_List") 
response.write rs("IDTacGia")
 
he he. được rồi. cảm ơn bạn nhiều nhá. đang viết cái diễn đàn. bạn có thể vào http://htt383.sytes.net/tapchicuaviet/
tham quan rồi góp ý cho mình được không? nick yahoo của mình : o0kinhcan0o :D hân hạnh làm quen :p
 
Viết forum bằng classic asp 8-}. Nghiên cứu thử mấy cái forum open source chưa, có biết các lỗ hổng có thể dẫn đến web bị hack chưa mà dám dùng asp để viết forum.
 
:D bạn thử các ký hiệu <>"& xem, mình đề phòng rồi :p
 
Bạn có hiểu SQL Injection, XSS một cách cơ bản chưa :-/. Chỉ remove mấy cái ký hiệu đó thôi à ::).
 
hem hiểu. mình đâu phải lập trình viên đâu. :p bạn có link nào học hỏi không? share mình với. trang mình viết, chủ yếu dựa trên cơ bản của asp. hem có jì khó cả :D
trang mình viết, đảm bảo lỗ hổng rất nhìu . hihi.
 
WWW.GOOGLE.COM với keyword SQL Injection, XSS

Thôi tới đây là xong nhé.
 
ừa. cảm ơn bạn nhiều nhá. :) ^_______^
 
Ví dụ:
Mã:
Update Example Set ColDate=getdate() where ColDate='5/29/2008 12:09:10 AM'

câu lênh của mình như sau :
SqlStr = "UPDATE Bai_Viet SET Thoi_Gian_Gui_Bai = " & now & " WHERE Thoi_Gian_Gui_Bai = '4/27/2008 11:50:52 AM'"
Con.Execute SqlStr

-------------------
và :
SqlStr = "UPDATE Bai_Viet SET Thoi_Gian_Gui_Bai = " & now & " WHERE ID_Bai_Viet = 4"
Con.Execute SqlStr

kết quả đều báo lỗi
Mã:
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression '5/3/2008 12:34:23 PM'.
vậy là sao hả ryu? mình dùng now. vì now cũng cho ra ngày, giờ hiện tại.
còn getdate() thì báo lỗi.


==>> hi, edit bài. đã tìm ra nguyên nhân -> thiếu dấu nháy nên không cập nhật được :)
 
Back
Top