banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: lama  XML
Profile for lama Messages posted by lama [ number of posts not being displayed on this page: 0 ]
 

.lht. wrote:
Bạn không truy cập được vào google.com.vn, bạn thử truy cập vào 1 số domain google của quốc gia khác xem ?

google.com.ph
google.de
...
 


Các địa chỉ trên thì lại được. Như vậy nguyên nhân do đâu vậy bạn có biết không ?
Hi,

Máy của mình tự nhiên không vào được www.google.com.vn. Hễ cứ vào là nó đều kêu download file là google_com_vn. Mình đã thử với trình duyệ IE, Chrome đều tương tự.

Các máy khác trong mạng vẫn vào được bình thường.
Mình thử gán DNS trên máy mình lại là 8.8.8.8, flushdns và phân giải thử địa chỉ google.com.vn, google.com, yahoo.com thì thấy ra kết quả với đuôi là domain của mình (google, yahoo hay bất cứ domain nào cũng vậy.Thật là lạ.
Mình check thử file host trên máy mình thì thấy bình thường, không có record lạ nào. Mà mặc dù phân giải vậy nhưng yahoo.com vẫn vào được, chỉ có google.com.vn là đòi download file, không cho vào.


Gán lại DNS của công ty kiểm tra thì không bị tình trạng add thêm domain như trên khi phân giải, tuy nhiên vào trang google.com.vn vẫn bị lỗi download.

Code:
C:\Users\nguyennp>nslookup
Default Server: google-public-dns-a.google.com
Address: 8.8.8.8
> yahoo.com
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: yahoo.com.mydomain.com
Address: 222.239.76.238


Vào Proxy của IE, Chrome thì thấy không có gì lạ.

Vậy bạn nào có bị tình trạng như trên không, có thể chia sẻ không ?

Có phải máy mình nhiễm virus ?

Mình cài chương trình quét Virus và nó luôn update/chạy nên mình không nghĩ do virus.

Cám ơn các bạn nhiều.

NPN

myquartz wrote:
Bạn check xem Mdaemon của bạn đã cấu hình đúng để gửi mail theo kiểu gọi là "SmartHost" chưa? Có thể Mdaemon vẫn chạy như bình thường, IP cơ quan bạn là IP động nên Spamhaus nó liệt vào dạng "không gửi mail server-to-server" được. Việc gửi mail đúng ra là phải relay qua SMTP của ISP khi bạn xài mail offline. Nếu chính SMTP của ISP chặn bạn lại, thì bạn phải check lại coi đã thiết lập xác thực chưa (thường cách này để kiểm tra hợp lệ khi gửi mail relay qua ISP), ISP của bạn hỗ trợ ra sao? 


Mdaemon mình cấu hình gởi thông qua Hosting (Relay), có Authenticate luôn, xem log thấy gởi transfer completed luôn mà vẫn không tới được.
Liên hệ Hosting thì nó cứ một mực nói là nó không có block IP của mình.

invalid-password wrote:

Post nguyên văn cái câu log đó lên xem nào, xem nó liệt vào danh sách nào của Spamhaus.
 


Giờ thì mình reset IP lại đã gởi được (gởi relay qua Hosting). Nhưng chiều chắc lại gởi không tới (mặc dù xem log là gởi tới, không thấy báo lỗi gì trả về cả).

IP bị liệt kê vào XBL của Spamhaus.org

Hi,

Vấn đề này mình đã hỏi trước kia, lúc trước là do bị virus. Gần đây bị lại, quét virus không có, mình cài mới lại Windows W2K3SP2 luôn, cài Symantec Endpoint với update mới nhất nhưng vẫn trục trặc.

Thử gởi mail ở 1 mạng khác thì được. Cho mình hỏi lại là :

1. Hơi ngạc nhiên, vì khi mình gởi mail thông qua Mail Server trên Hosting (mà thằng này thì xịn rồi), liên quan gì đến IP (public, dynamic) của mình ? Sao nó có thể căn cứ vào đó để block không cho email đến được.
--> Mình rất mong được giải thích rõ câu hỏi này, lúc đó thì mới có căn cứ để kiểm tra tiếp được.

2. Mình đã dùng các tool mà trang Spamhaus này khuyến cáo để diệt mass mail worm nhưng không tìm ra con nào cả. Rồi dùng TCPView để xem, dùng các Tool quét Conficker của Kaspersky, Sophos, Mcafee (Stinger) bản mới nhất quét cũng không thấy gì.

Khi reset lại IP mới thì kiểm tra trong Spamhaus không nằm Blacklist --> gởi được. Xong rồi cũng bị lại.
IP của Mail Server trên Hosting mà mình Relay thì không nằm trong Blacklist.
NCC : www.startlogic.com

Bên Hosting cung cấp dịch vụ tệ quá, support không giải thích được, cứ nói là sao bên nó gởi được mà bên mình gởi không được, vậy liên hệ ISP (FPT) đi. Liên hệ ISP thì nói là reset lại IP cho anh thôi (cũng không thỏa đáng).

Mong ai biết chia sẻ kinh nghiệm kiểm tra và xử lý giúp mình với.

Cám ơn rất nhiều.
Hi all,

Rất cám ơn mọi người đã chia sẻ, đóng góp. Xin báo 1 tin vui. Sau khi tham khảo nhiều góp ý trên diễn đàn, mình đã kiểm tra theo hướng nào dễ thực hiện trước, và đã kiểm tra theo hướng DeadLock. Các câu lệnh SELECT đáng lý phải dùng WITH(UNLOCK) --> Cả ngày hôm qua sau khi add code SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED vào Stored Proc để toàn bộ câu lệnch SELECT trong Stored đều sử dụng là WITH(UNLOCK) thì User không phàn nàn chậm như lúc trước nữa. Hy vọng sau khi tối ưu lại các Stored Proc và share bớt trên App nữa thì sẽ càng tốt hơn về performance. Phần tách SQL Server ra riêng có cách nào để mình chứng minh cho các Sếp và đề nghị thay đổi không nhỉ?

Mình cũng đã theo dõi Ổ cứng, Memory, và Network Interface theo hướng dẫn trang
www.computerperformance.co.uk 
thì hình như là ổ cứng bị overload thì phải. Memory cũng có vấn đề hay sao đó, Mình đã Enable PAE, restart server, gán Permission cho User để Lock Page, rồi Enable AWE lên 4GB, restart SQL nhưng thấy SQL vẫn không sử dụng bao nhiêu RAM (Tổng cộng cứ ở mức 2.3 GB là cao nhất, trong đó SQL sử dụng 1.6GB). Link :
http://msdn.microsoft.com/en-us/library/ms190673.aspx 


Xem Performance của Memory thì Page Faults/Sec hình như hơi bị nhiều, không biết có phải RAM bị hư không nữa.

Nhờ mọi người tiếp tục giúp đỡ và chia sẻ xem mình có nên thêm ổ cứng và thay RAM không ?

Ổ cứng cho chạy RAID10 chắc OK hơn RAID5 không ? Mình cũng nghĩ đến giải pháp SAN nhưng tốn kém quá, mà không lý nào Server vậy, với vài chục GB database mà chạy không nổi. Hic.

Phần rebuild index thì mình không dám đụng vào dưới SQL vì chương trình có cung cấp công cụ rebuild index và chỉ dám thực hiện trên đó.
Hiện tại với Server cấu hình trên, SELECT 1 bảng có 59 cột, 1triêu2 dòng thì mất 1 phút 20 giây thì có chấp nhận được không nhỉ ?

P/S : Mình có đính kèm file theo dõi Performance của HDD, Memory và Network bên dưới.
http://www.mediafire.com/?c74o54winr338ir 

Rất cám ơn mọi người đã nhiệt tình giúp đỡ, chia sẻ. Nhờ mọi người mà Nguyên sáng ra nhiều điều ( VD lại mới biết là tách SQL Server ra cho chạy 64 bit chẳng hạn, trước giờ cứ trong đầu là App không hỗ trợ thì SQL cũng phải chạy 32bit không à). Nguyên sẽ lần lượt test hết các trường hợp. Hy vọng sẽ có tin vui báo lại sớm.

Tuy vậy, nếu mọi người ai còn có thể chia sẻ gì về vấn đề này cứ tiếp tục chia sẻ nha :-P Tập hợp các chia sẻ này sẻ là 1 kinh nghiệm rất đáng quý cho Nguyên cũng như nhiều anh/em khác.

conmale wrote:
Nhìn chung mấy cái storeproc này có những đoạn query quá rộng (SELECT *) và có quá nhiều sub-queries. Đây là nguyên do tạo ra kém hiệu suất nếu xét trên bình diện truy vấn CSDL. Cách cải thiện là nên tối ưu lại storeproc và nên trao bớt trách nhiệm trên tầng ứng dụng (applications) việc hình thành các query statements cụ thể thay vì phó mặc cho storeproc thực hiện quá nhiều sub-queries.

MSSQL chạy trên nền 32-bit mà phục vụ cho lượng truy vấn cao và nặng thì hoạt động cực kỳ kém. Cách có thể cải thiện trên bình diện này là migrate sang một máy chủ chạy 64-bit và MSSQL 64-bit. 


Các câu lệnh SELECT * em thấy là đúng theo nhu cầu mà ? Từ bảng dữ liệu khoảng trăm mấy cột, mình đã select đúng các cột cần đưa vào 1 bảng tạm để xử lý (chắc cũng có vấn đề ở đây, em đang check).

Rất cám ơn anh đã góp ý trao bớt trách nhiệm cho App, so sánh với cách tổ chức của ứng dụng hiện tại (không thấy các stored truy vấn dữ liệu như em nói bên trên) thì chắc đây cũng chính là 1 trong những nguyên nhân chính rồi.

Ứng dụng này hiện tại thì chưa hỗ trợ 64 bit nên em chỉ có thể cài 32 bit thôi.

Thông tin thêm :

Hic, tối qua em thức tới 1h30 chạy trace thử thì thấy với dữ liệu in trong 1 tháng cho 93 mặt hàng thì in khỏang 10 giây à. Nhưng khi chọn in trong 3 tháng thì mất hơn 1 phút, chọn in từ đầu năm đến giờ cho 250 mặt hàng thì chờ hơn 30 phút chưa thấy ra luôn.

Lúc chạy trace và cả Active Monitor thấy thời gian gọi stored proc xảy ra cũng nhanh lắm, lâu thì có vài giây, còn lúc chạy nó có lock không cũng không biết, không thấy tình trạng là LOCKED. Các xử lý trong Active Monitor có Request là LOCK (không phải LOCKED) ngay cả khi thử SELECT 1 bảng đơn giản.
Mình post 1 stored proc dùng để Liệt kê các thành phẩm xuất kho. Mỗi ngày có khoảng 200-300 Hoá đơn, mỗi Hoá đơn có khoảng 10 dòng --> khoảng 2000-3000 dòng trong bảng chứa nghiệp vụ xuất kho mỗi ngày (chưa tính nghiệp vụ khác như nhập, chuyển kho (2 nghiệp vụ này ít hơn) .... cũng nằm cúng 1 bảng nghiệp vụ kho này).

Code:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[GL_BK_ThanhPhamXuat]
@Para1 NVARCHAR(20) --@CompID
,@Para2 NVARCHAR(20) --@FYear
,@Para3 NVARCHAR(20) --CustCodeFrom
,@Para4 NVARCHAR(20) --CustCodeTo
,@Para5 NVARCHAR(20) --StockFrom
,@Para6 NVARCHAR(20) --StockTo
,@Para7 NVARCHAR(20) --@FromDate
,@Para8 NVARCHAR(20) --@ToDate
AS
--[GL_BK_ThanhPhamXuat] '01','10','','','M6009','M6009','100420','100426'
SET NOCOUNT ON
BEGIN
---==DECLARE AND INTINITIALIZE THE GLOBAL VARIANCE==--
DECLARE @CompID as NVARCHAR(20)
SET @CompID = @Para1
DECLARE @FYear as NVARCHAR(20)
SET @FYear = @Para2
DECLARE @CustCodeFrom as NVARCHAR(20)
SET @CustCodeFrom = @Para3
DECLARE @CustCodeTo as NVARCHAR(20)
SET @CustCodeTo = @Para4
DECLARE @StockFrom as NVARCHAR(20)
SET @StockFrom = @Para5
DECLARE @StockTo as NVARCHAR(20)
SET @StockTo = @Para6
DECLARE @FromDate as NVARCHAR(20)
SET @FromDate = @Para7
DECLARE @ToDate as NVARCHAR(20)
SET @ToDate = @Para8
DECLARE @SqlStr NVARCHAR(4000)
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbThanhPhamXuat]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbThanhPhamXuat]
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbBangLuuHoaDonChoTPXuat]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbBangLuuHoaDonChoTPXuat]
CREATE TABLE tbBangLuuHoaDonChoTPXuat
(
SoHoaDon nvarchar(50)
)
SET @SqlStr = " INSERT INTO tbBangLuuHoaDonChoTPXuat SELECT "
+" distinct SL03002 from SL03" + @CompID + "00 "
+ " where SL03005 BETWEEN '" + CONVERT(NVARCHAR(10),convert(datetime,@FromDate),112) + "'"
+ " AND '" + CONVERT(NVARCHAR(10),convert(datetime,@ToDate),112) + "'"
EXECUTE sp_executesql @SqlStr
update tbBangLuuHoaDonChoTPXuat
set SoHoaDon=Replace (SoHoaDon,'R','')
--select * from tbBangLuuHoaDonChoTPXuat
CREATE TABLE tbThanhPhamXuat
(
MA_KH NVARCHAR(20)
,MA_HANG NVARCHAR(20)
,TEN_HANG NVARCHAR(50)
,QUY_CACH NVARCHAR(100)
,DON_VI_TINH NVARCHAR(50)
,TAI_KHOAN_DU NVARCHAR(50)
,SO_LUONG FLOAT
,DON_GIA_BAN FLOAT
-- ,GIA_VON FLOAT
,THANH_TIEN FLOAT
-- ,THANH_TIEN_VON FLOAT
,MA_KHO NVARCHAR(50)
-- ,TEN_KHO NVARCHAR(50)
-- ,LOAI_NV NVARCHAR(50) bo 5/8/09
-- ,TEN_NV NVARCHAR(50) bo 5/8/09
,SO_DON_HANG NVARCHAR(50)
,SO_HOA_DON NVARCHAR(50)
,GHI_CHU NVARCHAR(50)
,LOAI_NHAP_XUAT NVARCHAR(50)
,TI_LE_CK NVARCHAR(50)
,NGAY_HOA_DON DATETIME
--,SO_LO NVARCHAR(50)
)
SET @SqlStr = " INSERT INTO tbThanhPhamXuat SELECT "
+ " SC07006 AS [MA_KH]"
+ ", SC07003 AS [MA_HANG]"
+ ", SC01002 AS [TÊN_HÀNG]"
+ ", SC01003 AS [QUY_CACH]"
+ ", SC01135 AS [DON_VI_TINH]"
+ ", '' AS [TAI_KHOAN_DU]"
+ ", SC07004 AS [SO_LUONG]"
+ ", ROUND(SC07010,2) AS [DON_GIA_BAN]"
-- + ", SC07005 AS [GIA_VON]"
+ ", 0 AS [THANH_TIEN]"
-- + ", 0 AS [THANH_TIEN_VON]"
+ ", SC07009 AS [MA_KHO]"
-- + ", SC23002 AS [TEN_KHO]"
-- + ", SUBSTRING(SC07012,49,2) AS [LOAI_NV]" bo 5/8/09
-- + ", '' AS [TEN_NV]" bo 5/8/09
+ ", SC07007 AS [SO_DON_HANG]"
+ ", SC07056 AS [SO_HOA_DON]"
+ ", SC07055 AS [GHI_CHU]"
+ ", CONVERT(INT, SC07013) AS [LOAI_NHAP_XUAT]"
+ ", '' AS [TI_LE_CK]"
+ ", '1900/01/01' AS [NGAY_HOA_DON]"
--+",SC07029 "
+ " FROM SC07" + @CompID + "00 INNER JOIN SC01" + @CompID + "00 ON SC07003 = SC01001"
-- + " INNER JOIN SC23" + @CompID + "00 ON SC07009 = SC23001"
-- + " INNER JOIN SL03" + @CompID + "00 ON SC07056 = SL03002 OR RTRIM(SC07007) + 'R' = SL03002"
+ " WHERE SC07001 = '01'"
+ " AND LEFT(SC07003,1) in ( 'A','M')"
-- + " AND (CONVERT(INT, SC07013) = 49" -- XUAT BAN
-- + " OR (CONVERT(INT, SC07013) NOT IN (66) AND SC07004 > 0))" --TRA HANG TRONG STOCK ISSUED VOI SO LUONG AM
-- + " AND (CONVERT(INT, SC07013) NOT IN (66) AND SC07004 > 0))" --TRA HANG TRONG STOCK ISSUED VOI SO LUONG AM
-- + " AND SC07009 BETWEEN '" + @WareCodeFrom + "' AND '" + @WareCodeTo + "'"
-- + " AND SL03005 BETWEEN '" + CONVERT(NVARCHAR(10),@FromDate,112) + "'"
--+ " AND '" + CONVERT(NVARCHAR(10),@ToDate,112) + "'"
+" and SC07056 in (select SoHoaDon from tbBangLuuHoaDonChoTPXuat)"
+ " AND SUBSTRING(SC07012,49,2) <> '92'"
--if @CustCodeFrom<>''
--SET @SqlStr =@SqlStr + " and SC07006 between '" +@CustCodeFrom+"' and '"+@CustCodeTo+"'"
--
if @StockFrom <>''
SET @SqlStr =@SqlStr + " and SC07003 between '" +@StockFrom+"' and '"+@StockTo+"'"
SET @SqlStr =@SqlStr + " ORDER BY SC01002"
print @SqlStr
EXECUTE sp_executesql @SqlStr
--SELECT * FROM tbThanhPhamXuat ORDER BY SO_DON_HANG
/*
UPDATE tbThanhPhamXuat
SET THANH_TIEN_VON = SO_LUONG * GIA_VON
*/
SET @SqlStr = " UPDATE tbThanhPhamXuat"
+ " SET SO_HOA_DON = OR20021"
+ " ,TI_LE_CK = OR20051"
+ " ,NGAY_HOA_DON = OR20022"
+ " FROM tbThanhPhamXuat, OR20" + @CompID + "00"
+ " WHERE SO_DON_HANG = OR20001"
EXECUTE sp_executesql @SqlStr
/*
SELECT * FROM tbThanhPhamXuat
WHERE SO_DON_HANG = '0309000040'
*/
UPDATE tbThanhPhamXuat
SET SO_HOA_DON = SO_DON_HANG
WHERE SO_HOA_DON = ''
-----------------------------------
--GIA DUOI KHO KHAC TREN DON HANG--
-----------------------------------
UPDATE tbThanhPhamXuat
SET DON_GIA_BAN = 0
WHERE SO_HOA_DON = '08/0109319'
UPDATE tbThanhPhamXuat
SET DON_GIA_BAN = 368.6
WHERE SO_HOA_DON = '08/083294'
DELETE tbThanhPhamXuat
WHERE SO_DON_HANG = '08/076853' --ĐIỀU CHỈNH HỦY HĐ CỦA THÁNG KHÁC
-----------------------------------
UPDATE tbThanhPhamXuat
SET THANH_TIEN = SO_LUONG * ROUND(DON_GIA_BAN, 2)
SET @SqlStr = " UPDATE tbThanhPhamXuat"
+ " SET GHI_CHU = OR22008"
+ " FROM tbThanhPhamXuat, OR22" + @CompID + "00"
+ " WHERE SO_DON_HANG = OR22001"
EXECUTE sp_executesql @SqlStr
-- SET @SqlStr = " UPDATE tbThanhPhamXuat" -- bo 5/8/09
---- + " SET TEN_NV = GL03003"--, MO_TA = GL03004" -- doan nay
-- + " FROM tbThanhPhamXuat, GL03" + @CompID + @FYear --
---- + " WHERE LOAI_NV = GL03002" --
-- + " AND GL03001 = 'J'" --
--
-- EXECUTE sp_executesql @SqlStr --
---------------------------------------------------
/* Dinh nghia bang tam luu don vi tinh (Unit) */
---------------------------------------------------
IF EXISTS(SELECT name FROM sysobjects WHERE name = 'tbUnitText_ThahPhamXuat')
DROP TABLE tbUnitText_ThahPhamXuat
DECLARE @dem AS INT
SET @dem = 1
CREATE TABLE tbUnitText_ThahPhamXuat
(
idcol int primary key
,UnitText nvarchar(50)
)
SET @dem = 0
WHILE @dem <= 40
BEGIN
IF @dem <= 7
SET @SqlStr = " INSERT INTO tbUnitText_ThahPhamXuat "
+ " SELECT '" + CONVERT(nvarchar, @dem) + "', SC0900" + CONVERT(nvarchar,(@dem + 2))
+ " FROM SC09" + @CompID + "00 WHERE SC09001 = 'AME'"
ELSE
SET @SqlStr = "INSERT INTO tbUnitText_ThahPhamXuat "
+ " SELECT '" + CONVERT(nvarchar, @dem) + "', SC090" + CONVERT(nvarchar,(@dem + 2))
+ " FROM SC09" + @CompID + "00 WHERE SC09001 = 'AME'"
EXECUTE sp_executesql @SqlStr
SET @dem = @dem + 1
END
UPDATE tbThanhPhamXuat
SET DON_VI_TINH = UnitText
FROM tbThanhPhamXuat, tbUnitText_ThahPhamXuat
WHERE DON_VI_TINH = idcol
SET @SqlStr = " UPDATE tbThanhPhamXuat"
+ " SET TAI_KHOAN_DU = SUBSTRING(SL04006, 1, 4)"
+ " FROM tbThanhPhamXuat, SL04" + @CompID + @FYear --CO DINH MA CONG TY, NAM TAI CHINH
+ " WHERE SO_HOA_DON = SL04013"
+ " AND LEFT(SL04006,4) IN ('5112', '5122', '5312','5111')"
EXECUTE sp_executesql @SqlStr
SET @SqlStr = " UPDATE tbThanhPhamXuat"
+ " SET TAI_KHOAN_DU = SUBSTRING(GL06001, 1, 4)"
+ " FROM tbThanhPhamXuat, GL06" + @CompID + @FYear --CO DINH MA CONG TY, NAM TAI CHINH
+ " WHERE SO_HOA_DON = GL06007"
+ " AND LEFT(GL06001,4) IN ('5112', '5122', '5312','5111')"
+ " AND TAI_KHOAN_DU = ''"
EXECUTE sp_executesql @SqlStr
-------------------------------------
--DON GIA = 0 LA HOA DON KHUYEN MAI, UPDATE LAI TK--
-------------------------------------
UPDATE tbThanhPhamXuat
SET TAI_KHOAN_DU = '5122'
WHERE DON_GIA_BAN = 0
-----------------------------------------------
--UPDATE TAI KHOAN DO MAT BUT TOAN TRONG SL04--
-----------------------------------------------
UPDATE tbThanhPhamXuat
SET TAI_KHOAN_DU = '5112'
WHERE SO_HOA_DON = '08/112567'
-------------------------------------
--GET RESULT--
-------------------------------------
SELECT *--MA_HANG, TEN_HANG, QUY_CACH, DON_VI_TINH, TAI_KHOAN_DU, SUM(SO_LUONG) AS SO_LUONG, SUM(THANH_TIEN) AS THANH_TIEN
FROM tbThanhPhamXuat
order by MA_HANG
-- WHERE SO_HOA_DON = '08/153030'
-- WHERE TAI_KHOAN_DU <> '' --AND THANH_TIEN <> 0
-- AND MA_HANG = 'A0245'
-- GROUP BY MA_HANG, TEN_HANG, QUY_CACH, DON_VI_TINH, TAI_KHOAN_DU
-- ORDER BY TAI_KHOAN_DU
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbThanhPhamXuat]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbThanhPhamXuat]
IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbSupplier]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbSupplier]
END


1 báo cáo khác cũng làm treo máy : Báo cáo xuất nhập tồn kho (có thêm giá trị) dành cho Kế toán.

Code:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
----*******************************************----
--Made Date: 01/01/2005
--Updating Date: 19/04/2007 ( Version:1000.0002 )
--For Purpose: Bao Cao Xuat Nhap Ton -> For Design Template
--For Company: Designed Template
--Description: In this store procedure, we used three tables such as
-- SC07 -> Stock Transaction File I/O
-- SC09 -> Get Unit of Measure
--Note:
-- @Para1 nvarchar(50) -- @CompID
--,@Para2 nvarchar(50) -- @FYear
--,@Para3 nvarchar(50) -- @Language
--,@Para4 nvarchar(50) -- @StockFrom
--,@Para5 nvarchar(50) -- @StockTo
--,@Para6 nvarchar(50) --,@WHFrom
--,@Para7 nvarchar(50) --,@WHTo
--,@Para8 nvarchar(50) --,@DateFrom
--,@Para9 nvarchar(50) --,@DateTo
----*******************************************----
ALTER PROCEDURE [dbo].[SC_XuatNhapTon_KeToan]
@Para1 nvarchar(50) -- @CompID
,@Para2 nvarchar(50) -- @FYear
,@Para3 nvarchar(50) -- @Language
,@Para4 nvarchar(50) -- @StockFrom
,@Para5 nvarchar(50) -- @StockTo
,@Para6 nvarchar(50) --,@WHFrom
,@Para7 nvarchar(50) --,@WHTo
,@Para8 nvarchar(50) --,@DateFrom
,@Para9 nvarchar(50) --,@DateTo
WITH RECOMPILE
-- [XuatNhapTon_KeToan] '01','10','AME','A0144','A0144','K1','KTGC12','100401','100430'
AS
BEGIN
/* ************************************************* */
DECLARE @CompID AS NVARCHAR(50) SET @CompID = @Para1
DECLARE @FYear AS NVARCHAR(50) SET @FYear = @Para2
DECLARE @Language AS NVARCHAR(50) SET @Language = @Para3
DECLARE @StockFrom AS NVARCHAR(50) SET @StockFrom = @Para4
DECLARE @StockTo AS NVARCHAR(50) SET @StockTo = @Para5
DECLARE @WHFrom AS NVARCHAR(50) SET @WHFrom = @Para6
DECLARE @WHTo AS NVARCHAR(50) SET @WHTo = @Para7
DECLARE @DateFrom AS NVARCHAR(50) SET @DateFrom = @Para8
DECLARE @DateTo AS NVARCHAR(50) SET @DateTo = @Para9
DECLARE @SqlStr as nvarchar(4000)
DECLARE @dem as INT
SET @dem = 0
SET ANSI_WARNINGS OFF
SET ARITHABORT OFF
SET QUOTED_IDENTIFIER OFF
END
BEGIN
CREATE TABLE #TempUnitTable
(
idcol int PRIMARY KEY,
UnitText nvarchar(512)
)
--DROP TABLE #tbStock
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[#tbStock]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#tbStock]
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[#tbStockEnd]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#tbStockEnd]
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[#tbStockBegin]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#tbStockBegin]
--DROP TABLE QRYTMP_StockImMid
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbStockImMid]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbStockImMid]
--DROP TABLE QRYTMP_StockExMid
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbStockExMid]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbStockExMid]
CREATE TABLE #tbStockEnd
(
WarehouseNo nvarchar(50),
WHName nvarchar(50),
StockCode nvarchar(50),
Description1 nvarchar(512),
Description2 nvarchar(512),
UnitConvStoc nvarchar(50), --DON VI TINH
UnitCodeMPC nvarchar(50), --DON VI TINH NHO NHAT
UnitConvMPC INT, --HE SO QUI DOI
-- LotID nvarchar(20), --SO LO
ExpiryDate DATETIME,
UserDefFld1 NVARCHAR(50), --SO PHIEU KIEM NGHIEM
UserDefFld2 NVARCHAR(50), --DO AM
UserDefFld3 NVARCHAR(50), --HAM LUONG
ImQtyMid numeric(30,4), --SO LUONG HANG NHAP
ImTransfPrice1Mid numeric(30,4), --GIA TIEN HANG NHAP
ExQtyMid numeric(30,4), --SO LUONG HANG XUAT
ExTransfPrice1Mid numeric(30,4), --GIA TIEN HANG XUAT
QtyEnd numeric(30,4), --SO LUONG HANG CON LAI TRONG KHO
TransfPrice1End numeric(30,4), --GIA TIEN HANG CON LAI TRONG KHO
CurrName nvarchar(50),
FromDate datetime,
ToDate datetime
,QtyBegin numeric(30,4)
, TransfPrice1Begin numeric(30,4)
)
CREATE TABLE #tbStockBegin
(
WarehouseNo nvarchar(50),
WHName nvarchar(50),
StockCode nvarchar(50),
Description1 nvarchar(512),
Description2 nvarchar(512),
UnitConvStoc nvarchar(50), --DON VI TINH
UnitCodeMPC nvarchar(50), --DON VI TINH NHO NHAT
UnitConvMPC INT, --HE SO QUI DOI
-- LotID nvarchar(20), --SO LO
ExpiryDate DATETIME,
UserDefFld1 NVARCHAR(50), --SO PHIEU KIEM NGHIEM
UserDefFld2 NVARCHAR(50), --DO AM
UserDefFld3 NVARCHAR(50), --HAM LUONG
ImQtyMid numeric(30,4), --SO LUONG HANG NHAP
ImTransfPrice1Mid numeric(30,4), --GIA TIEN HANG NHAP
ExQtyMid numeric(30,4), --SO LUONG HANG XUAT
ExTransfPrice1Mid numeric(30,4), --GIA TIEN HANG XUAT
QtyBeGin numeric(30,4), --SO LUONG HANG CON LAI dau ki TRONG KHO
TransfPrice1Begin numeric(30,4), --GIA TIEN HANG CON LAI TRONG KHO
CurrName nvarchar(50),
FromDate datetime,
ToDate datetime
)
----*******************************************----
--Insert the Unit Text into the temporary table
----*******************************************----
WHILE @dem < 40
BEGIN
INSERT INTO #TempUnitTable (idcol, UnitText) VALUES (@dem,' ')
SET @dem = @dem + 1
END
SET @dem = 0
WHILE @dem < 8
BEGIN
SET @SqlStr = " UPDATE #TempUnitTable "
+ " SET #TempUnitTable.UnitText = T1.SC0900" + convert(nvarchar(3), @dem + 2)
+ " FROM #TempUnitTable, SC09" + @CompID + "00 T1"
+ " WHERE T1.SC09001 = '" + @Language + "'"
+ " AND #TempUnitTable.idcol = " + convert(nvarchar(3), @dem)
EXECUTE sp_executesql @SqlStr
SET @dem = @dem + 1
END
WHILE @dem < 40
BEGIN
SET @SqlStr = " UPDATE #TempUnitTable "
+ " SET #TempUnitTable.UnitText = T1.SC090" + convert(nvarchar(3), @dem + 2)
+ " FROM #TempUnitTable, SC09" + @CompID + "00 T1"
+ " WHERE T1.SC09001 = '" + @Language + "'"
+ " AND #TempUnitTable.idcol = " + convert(nvarchar(3), @dem)
EXECUTE sp_executesql @SqlStr
SET @dem = @dem + 1
END
----*******************************************----
----tbTmp lay du lieu hoan toan tu bang SC07
----nhung duoc cap nhat lai voi TransPrice theo TransType
----*******************************************----
CREATE TABLE #tbStock
(
WareNo nvarchar(50) collate Latin1_General_BIN,
WareNoTo nvarchar(50) collate Latin1_General_BIN,
TransDate datetime ,
TransType nvarchar(50) collate Latin1_General_BIN,
StockCode nvarchar(512) collate Latin1_General_BIN,
LotID nvarchar(512) collate Latin1_General_BIN,
Qty numeric(30,4),
TransPrice numeric(30,4),
Amount NUMERIC(30,4),
Reference nvarchar(50) collate Latin1_General_BIN ,
OrderNumber nvarchar(50) collate Latin1_General_BIN ,
Invoice NVARCHAR(50) collate Latin1_General_BIN ,
Receiver NVARCHAR(50) collate Latin1_General_BIN ,
GLTransaction NVARCHAR(50) collate Latin1_General_BIN
)
SET @SqlStr = " SELECT "
+ " T2.SC07009 WareNo"
+ ", T2.SC07027 WareNoTo"
+ ", T2.SC07002 TransDate"
+ ", T2.SC07001 TransType"
+ ", T2.SC07003 StockCode"
+ ", T2.SC07021 LotID"
-- + ", T2.SC07021 BatchID"
+ ", T2.SC07004 Qty"
+ ", T2.SC07005 TransPrice"
+ ", T2.SC07005*T2.SC07004 Amount"
+ ", T2.SC07007 Reference"
+ ", T2.SC07006 OrderNumber"
+ ", T2.SC07056 Invoice"
+ ", T2.SC07011 Receiver"
+ ", T2.SC07020 GLTransaction"
-- + " INTO #tbStock"
+ " FROM SC07" + @CompID + "00 T2"
+ " WHERE T2.SC07009 BETWEEN '" + @WHFrom + "' AND '" + @WHTo + "'"
+ " AND T2.SC07003 BETWEEN '" + @StockFrom + "' AND '" + @StockTo + "'"
+ " AND T2.SC07002 <= '" + CONVERT(nvarchar(50), @DateTo, 112) + "'"
-- + " AND T2.SC07006 <> 'DDCK2008'"
+ " ORDER BY T2.SC07003, T2.SC07002 ASC"
insert #tbStock execute sp_executesql @SqlStr
PRINT @SqlStr
--XOA DI CAC DONG CHUYEN KHO TU KN->KT HOAC KT->KN : HANG KIEM NGHIEM
--DELETE #tbStock
--SELECT * FROM #tbStock
-- WHERE Reference = 'X0513/09'
--SELECT * FROM #tbStock WHERE StockCode = 'B0131'
--SELECT * FROM #tbStock WHERE StockCode = 'B0027'
--delete #tbStock where Reference = 'DD001/08'-- OR OrderNumber = 'DDCK2009'
--SELECT * FROM #tbStock WHERE StockCode = 'C0047'
-- SET @SqlStr = " UPDATE #tbStock"
-- + " SET TransDate = PL03005"
-- + " FROM PL03" + @CompID + "00"
-- + " WHERE Invoice = PL03002 AND Receiver = PL03001"
-- execute sp_executesql @SqlStr
UPDATE #tbStock
SET Amount = TransPrice
WHERE TransType = '03' OR TransType = '10'
UPDATE #tbStock
SET Amount = (-1)* TransPrice
WHERE TransType = '07'
--SELECT * FROM #tbStock WHERE StockCode = 'B0651' --AND (TransType = '01' OR (TransType = '04' AND Qty < 0))
----*******************************************----
----##tbStockEnd tính số lượng và giá cuối kỳ
----Bang nay la bang chính để lấy dữ liệu
----*******************************************----
SET @SqlStr = " INSERT INTO #tbStockEnd "
+ " SELECT DISTINCT"
+ " T2.WareNo "
+ ", T3.SC23002 "
+ ", T2.StockCode "
+ ", T1.SC01002 Description1"
+ ", SUBSTRING(T1.SC01003, 1, ABS(CHARINDEX('TH',T1.SC01003,1) - 1)) Description2"
+ ", T4.UnitText UnitText"
-- + ", T2.LotID LotID"
+ ", T1.SC01136 UnitCodeMPC"
+ ", T1.SC01142 UnitConvMPC"
+ ", NULL"
+ ", ' '"
+ ", ' '"
+ ", ' '"
+ ", 0 "
+ ", 0 "
+ ", 0 "
+ ", 0 "
+ ", SUM(T2.Qty) "
+ ", SUM(T2.Amount) "
+ ", SY.SYCD009 CurrName"
+ ", '" + CONVERT(nvarchar(50), @DateFrom, 1) + "'"
+ ", '" + CONVERT(nvarchar(50), @DateTo, 1) + "'"
+",0"
+",0"
+ " FROM SC01" + @CompID + "00 T1, #tbStock T2"
+ ", SC23" + @CompID + "00 T3, #TempUnitTable T4"
+ ", SYCD" + @CompID + "00 SY"
+ " WHERE T2.WareNo BETWEEN '" + @WHFrom + "' AND '" + @WHTo + "'"
+ " AND T2.StockCode BETWEEN '" + @StockFrom + "' AND '" + @StockTo + "'"
+ " AND T2.WareNo = T3.SC23001"
+ " AND T1.SC01001 = T2.StockCode"
+ " AND T2.TransDate <= '" + CONVERT(nvarchar(50), @DateTo, 112) + "'"
+ " AND T4.idcol = T1.SC01133"
+ " AND SY.SYCD001 = 0 "
+ " GROUP BY T2.StockCode, T2.WareNo, T3.SC23002, T1.SC01002, T1.SC01003,"
+ " T1.SC01136, T1.SC01142, T4.UnitText, SY.SYCD009"--- T2.LotID"
+ " ORDER BY T2.StockCode ASC"
EXECUTE sp_executesql @SqlStr
--SELECT * FROM #tbStockEnd
SET @SqlStr = " INSERT INTO #tbStockBegin "
+ " SELECT DISTINCT"
+ " T2.WareNo "
+ ", T3.SC23002 "
+ ", T2.StockCode "
+ ", T1.SC01002 Description1"
+ ", SUBSTRING(T1.SC01003, 1, ABS(CHARINDEX('TH',T1.SC01003,1) - 1)) Description2"
+ ", T4.UnitText UnitText"
-- + ", T2.LotID LotID"
+ ", T1.SC01136 UnitCodeMPC"
+ ", T1.SC01142 UnitConvMPC"
+ ", NULL"
+ ", ' '"
+ ", ' '"
+ ", ' '"
+ ", 0 "
+ ", 0 "
+ ", 0 "
+ ", 0 "
+ ", SUM(T2.Qty) "
+ ", SUM(T2.Amount) "
+ ", SY.SYCD009 CurrName"
+ ", '" + CONVERT(nvarchar(50), @DateFrom, 1) + "'"
+ ", '" + CONVERT(nvarchar(50), @DateTo, 1) + "'"
+ " FROM SC01" + @CompID + "00 T1, #tbStock T2"
+ ", SC23" + @CompID + "00 T3, #TempUnitTable T4"
+ ", SYCD" + @CompID + "00 SY"
+ " WHERE T2.WareNo BETWEEN '" + @WHFrom + "' AND '" + @WHTo + "'"
+ " AND T2.StockCode BETWEEN '" + @StockFrom + "' AND '" + @StockTo + "'"
+ " AND T2.WareNo = T3.SC23001"
+ " AND T1.SC01001 = T2.StockCode"
+ " AND T2.TransDate < '" + CONVERT(nvarchar(50), @DateFrom, 112) + "'"
+ " AND T4.idcol = T1.SC01133"
+ " AND SY.SYCD001 = 0 "
+ " GROUP BY T2.StockCode, T2.WareNo, T3.SC23002, T1.SC01002, T1.SC01003,"
+ " T1.SC01136, T1.SC01142, T4.UnitText, SY.SYCD009"--- T2.LotID"
+ " ORDER BY T2.StockCode ASC"
EXECUTE sp_executesql @SqlStr
--select * from #tbStockBegin
print @SqlStr
DELETE #tbStock
WHERE ((WareNo = 'KN' AND WareNoTo = 'KT') OR (WareNo = 'KT' AND WareNoTo = 'KN')
OR (WareNo = 'KB' AND WareNoTo = 'KT') OR (WareNo = 'KB' AND WareNoTo = 'KT'))
AND Receiver = '20'
AND TransDate BETWEEN '20090201' AND '20091230'
----*******************************************----
----tbStockImMid tính số lượng và giá nhập trong kỳ
----ĐK: theo TransType
----*******************************************----
SET @SqlStr = " SELECT DISTINCT"
+ " T2.WareNo WarehouseNo"
+ ", T2.StockCode StockCode"
+ ", T1.SC01002 Description1"
+ ", SUBSTRING(T1.SC01003, 1, ABS(CHARINDEX('TH',T1.SC01003,1) - 1)) Description2"
+ ", T4.UnitText UnitText"
-- + ", T2.LotID LotID"
+ ", T1.SC01136 UnitCodeMPC"
+ ", T1.SC01142 UnitConvMPC"
+ ", SUM(T2.Qty) Qty"
+ ", SUM(round(T2.Amount,4)) Amount"
+ ", 0 ExQty"
+ ", 0 ExAmount"
+ ", 0 EndQty"
+ ", 0 EndAmount"
+ ", SY.SYCD009 CurrName"
-- + ", T2.GLTransaction GLTransaction"
+ ", '" + CONVERT(nvarchar(50), @DateFrom, 1) + "' DateFrom"
+ ", '" + CONVERT(nvarchar(50), @DateTo, 1) + "' DateTo"
+ " INTO tbStockImMid"
+ " FROM SC01" + @CompID + "00 T1, #tbStock T2"
+ ", SC23" + @CompID + "00 T3, #TempUnitTable T4"
+ ", SYCD" + @CompID + "00 SY"
+ " WHERE T2.WareNo BETWEEN '" + @WHFrom + "' AND '" + @WHTo + "'"
+ " AND T2.StockCode BETWEEN '" + @StockFrom + "' AND '" + @StockTo + "'"
+ " AND T2.WareNo = T3.SC23001"
+ " AND T1.SC01001 = T2.StockCode"
+ " AND T4.idcol = T1.SC01133"
+ " AND SY.SYCD001 = 0 "
+ " AND (T2.TransType IN ('00','03') OR (T2.Qty > 0 AND T2.TransType = '04')" --Điều kiện để lấy
+ " OR (T2.TransType = '02' AND T2.Qty > 0))" --hàng nhập kho
-- + " OR (T2.TransType = '01' AND T2.Qty > 0))"
+ " AND T2.TransDate >= '" + CONVERT(nvarchar(50), @DateFrom, 112) + "'"
+ " AND T2.TransDate <= '" + CONVERT(nvarchar(50), @DateTo, 112) + "'"
+ " GROUP BY T2.StockCode, T2.WareNo, T3.SC23002, T1.SC01002, T1.SC01003,"
+ " T1.SC01136, T1.SC01142, T4.UnitText, SY.SYCD009"--, T2.GLTransaction"--, T2.LotID"
+ " ORDER BY T2.StockCode ASC"
EXECUTE sp_executesql @SqlStr
--SELECT * FROM tbStockImMid --WHERE StockCode LIKE 'A0281%' --AND WarehouseNo = 'KN'
-- AND SC25002 = GLTransaction
----*******************************************----
----tbStockExMid tính số lượng và giá xuất trong kỳ
----ĐK: theo TransType
----*******************************************----
SET @SqlStr = " SELECT DISTINCT"
+ " T2.WareNo WarehouseNo"
+ ", T2.StockCode StockCode"
+ ", T1.SC01002 Description1"
+ ", SUBSTRING(T1.SC01003, 1, ABS(CHARINDEX('TH',T1.SC01003,1) - 1)) Description2"
+ ", T4.UnitText UnitText"
+ ", T1.SC01136 UnitCodeMPC"
+ ", T1.SC01142 UnitConvMPC"
-- + ", T2.LotID LotID"
+ ", 0 ImQty"
+ ", 0 ImAmount"
+ ", SUM(T2.Qty) Qty"
+ ", SUM(round(T2.Amount,4)) Amount"
+ ", 0 EndQty"
+ ", 0 EndAmount"
+ ", SY.SYCD009 CurrName"
+ ", '" + CONVERT(nvarchar(50), @DateFrom, 1) + "' DateFrom"
+ ", '" + CONVERT(nvarchar(50), @DateTo, 1) + "' DateTo"
+ " INTO tbStockExMid"
+ " FROM SC01" + @CompID + "00 T1, #tbStock T2"
+ ", SC23" + @CompID + "00 T3, #TempUnitTable T4"
+ ", SYCD" + @CompID + "00 SY"
+ " WHERE T2.WareNo BETWEEN '" + @WHFrom + "' AND '" + @WHTo + "'"
+ " AND T2.StockCode BETWEEN '" + @StockFrom + "' AND '" + @StockTo + "'"
+ " AND T2.WareNo = T3.SC23001"
+ " AND T1.SC01001 = T2.StockCode"
+ " AND T4.idcol = T1.SC01133"
+ " AND SY.SYCD001 = 0 "
+ " AND (T2.TransType IN ('01','07','10') OR (T2.Qty < 0 AND T2.TransType = '04')" --Điều kiện để lấy
+ " OR (T2.TransType = '02' AND T2.Qty < 0))"
-- + " OR (T2.TransType = '01' AND T2.Qty < 0))" --hàng xuất kho
+ " AND T2.TransDate >= '" + CONVERT(nvarchar(50), @DateFrom, 112) + "'"
+ " AND T2.TransDate <= '" + CONVERT(nvarchar(50), @DateTo, 112) + "'"
+ " GROUP BY T2.StockCode, T2.WareNo, T3.SC23002, T1.SC01002, T1.SC01003,"
+ " T1.SC01136, T1.SC01142, T4.UnitText, SY.SYCD009"--, T2.LotID"
+ " ORDER BY T2.StockCode ASC"
EXECUTE sp_executesql @SqlStr
--SELECT * FROM tbStockExMid WHERE StockCode = 'A0281'
--Them điều kiện kết LotID-
UPDATE #tbStockEnd
SET #tbStockEnd.ImQtyMid = tbStockImMid.Qty
,#tbStockEnd.ImTransfPrice1Mid = tbStockImMid.Amount
FROM #tbStockEnd, tbStockImMid
WHERE #tbStockEnd.WarehouseNo collate Latin1_General_BIN = tbStockImMid.WarehouseNo
AND #tbStockEnd.StockCode collate Latin1_General_BIN = tbStockImMid.StockCode
-- AND #tbStockEnd.LotID = tbStockImMid.LotID --LotID
UPDATE #tbStockEnd
SET #tbStockEnd.ExQtyMid = tbStockExMid.Qty
,#tbStockEnd.ExTransfPrice1Mid = tbStockExMid.Amount
FROM #tbStockEnd, tbStockExMid
WHERE #tbStockEnd.WarehouseNo collate Latin1_General_BIN = tbStockExMid.WarehouseNo
AND #tbStockEnd.StockCode collate Latin1_General_BIN = tbStockExMid.StockCode
UPDATE #tbStockEnd
SET #tbStockEnd.QtyBegin = #tbStockBegin.QtyBegin
,#tbStockEnd.TransfPrice1Begin = #tbStockBegin.TransfPrice1Begin
FROM #tbStockEnd, #tbStockBegin
WHERE #tbStockEnd.WarehouseNo collate Latin1_General_BIN = #tbStockBegin.WarehouseNo
AND #tbStockEnd.StockCode collate Latin1_General_BIN = #tbStockBegin.StockCode
-- AND #tbStockEnd.LotID = tbStockExMid.LotID --LotID
--UPDATE NEU HS QUI DOI = 0--
/*
UPDATE #tbStockEnd
SET UnitConvMPC = 1
WHERE UnitConvMPC = 0
--NHAN SL VOI HE SO QUI DOI--
UPDATE #tbStockEnd
SET ImQtyMid = ImQtyMid * UnitConvMPC,
ExQtyMid = ExQtyMid * UnitConvMPC,
QtyEnd = QtyEnd * UnitConvMPC
*/
--NHAN SL VOI HE SO QUI DOI--
/*
UPDATE #tbStockEnd
SET ImQtyMid = ImQtyMid * ISNULL(QDGBB, 1),
ExQtyMid = ExQtyMid * ISNULL(QDGBB, 1),
QtyEnd = QtyEnd * ISNULL(QDGBB, 1)
FROM #tbStockEnd, SCGCD0000
WHERE StockCode = MAHH
*/
UPDATE #tbStockEnd
SET UnitCodeMPC = ( SELECT UnitText FROM #TempUnitTable WHERE UnitCodeMPC = idcol)
--UPDATE Do am, ham luong, Phieu KN --
--UPDATE MA PHAN XUONG, TEN PHAN XUONG--
SET @SqlStr = " UPDATE #tbStockEnd"
+ " SET UserDefFld1 = SC01010"
+ " FROM #tbStockEnd, SC01" + @CompID + "00"
+ " WHERE StockCode collate Latin1_General_BIN = SC01001"
EXECUTE sp_executesql @SqlStr
SET @SqlStr = " UPDATE #tbStockEnd"
+ " SET UserDefFld1 = SY24003"
+ " FROM #tbStockEnd, SY24" + @CompID + "00"
+ " WHERE UserDefFld1 collate Latin1_General_BIN = SY24002"
+ " AND SY24001 = 'IQ'"
EXECUTE sp_executesql @SqlStr
---------------------------------------
/*
SET @SqlStr = " UPDATE #tbStockEnd"
+ " SET LotID = SC33009"
+ " FROM #tbStockEnd, SC33" + @CompID + "00"
+ " WHERE WarehouseNo = SC33002 AND StockCode = SC33001 AND LotID = SC33003"
EXECUTE sp_executesql @SqlStr
*/
--**********GET RESULT*************--
/*SELECT WarehouseNo, WHName, StockCode, Description1, Description2, UnitConvStoc
,LotID, ExpiryDate, UserDefFld1, UserDefFld2, UserDefFld3,
SUM(ImQtyMid) as ImQtyMid, SUM(ExQtyMid) AS ExQtyMid, SUM(QtyEnd) AS QtyEnd, CurrName, FromDate, ToDate
FROM #tbStockEnd
WHERE ImQtyMid <> 0.0 OR ExQtyMid <> 0.0 OR QtyEnd <> 0.0
group by WarehouseNo, WHName, StockCode, Description1, Description2, UnitConvStoc
,LotID, ExpiryDate, UserDefFld1, UserDefFld2, UserDefFld3, CurrName, FromDate, ToDate
-- AND LotID = '0030408'
*/
IF @StockFrom LIKE 'A%'
SELECT *
FROM #tbStockEnd
WHERE (ImQtyMid <> 0.0 OR ExQtyMid <> 0.0 OR QtyEnd <> 0.0
OR ImTransfPrice1Mid <> 0.0 OR ExTransfPrice1Mid <> 0.0 OR TransfPrice1End <> 0.0)
AND WarehouseNo IN ('K1','K2','K8','K13','K6','K9','K14','K7')
ELSE
SELECT *
FROM #tbStockEnd
WHERE (ImQtyMid <> 0.0 OR ExQtyMid <> 0.0 OR QtyEnd <> 0.0
OR ImTransfPrice1Mid <> 0 OR ExTransfPrice1Mid <> 0 OR TransfPrice1End <> 0)
SELECT StockCode,ImTransfPrice1Mid
FROM #tbStockEnd
WHERE (ImTransfPrice1Mid <> 0.0 )
--SELECT StockCode, SUM(ExTransfPrice1Mid) FROM #tbStockEnd --WHERE TransDate BETWEEN '090301' AND '090331'
--GROUP BY StockCode
--SELECT StockCode, SUM(ExTransfPrice1Mid) FROM #tbStockEnd --WHERE TransDate BETWEEN '090301' AND '090331'
--w
--GROUP BY StockCode
--SELECT * FROM #tbStock WHERE TransDate BETWEEN '090601' AND '090630' AND StockCode = 'B0005'
DROP TABLE #tbStock
DROP TABLE #tbStockEnd
DROP TABLE tbStockImMid
DROP TABLE tbStockExMid
--DROP TABLE tbStock
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[#tbStock]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#tbStock]
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[#tbStockEnd]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[#tbStockEnd]
--DROP TABLE QRYTMP_StockImMid
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbStockImMid]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbStockImMid]
--DROP TABLE QRYTMP_StockExMid
IF EXISTS ( SELECT * FROM dbo.sysobjects WHERE id = object_id(N'[dbo].[tbStockExMid]')
AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
DROP TABLE [dbo].[tbStockExMid]
END
--[XuatNhapTon_KeToan] '01','09','AME','B0001','B9999','KN','KN','090801','090831'

cvhainb wrote:
Mình chỉ có thể góp ý thêm một chút về các vấn đề về truy vấn (query).

Đối với package lớn như bạn mô tả thì việc các câu truy vấn dữ liệu như thế nào cũng rất quan trọng. Với dữ liệu lớn mà báo cáo khi in ra là trong khoảng thời gian là 1, 2 năm thì việc treo máy cũng là thường.

Để dễ dàng bạn chỉ nên xem lại đoạn code chỗ nhập liệu, thử xem.

Thân
smilie
 


Cám ơn bạn đã chia sẻ. Ứng dụng ERP này của 1 tập đoàn nước ngoài nên mình không có xem code chổ nhập liệu được.

conmale wrote:

W2k3 và MSSQL này chạy phiên bản 32-bit hay 64-bit?

Phương thức kết nối và "commit data" từ các applications đến CSDL cụ thể như thế nào? 


Dạ, W2k3 và SQL thì đều đang chạy 32 bit. Em không rõ lắm cách "commit data" của Application. Nhưng biết là ứng dụng gọi các COM+ App và DCOM, trong database thì em không thấy lưu các Stored Proc phục vụ insert,update,delete dữ liệu gì cả, chỉ có 1 vài stored phục vụ đăng nhập, phân quyền, ... Đây là 1 ứng dụng ERP cũng ở tầm trung và brochure thì cũng có nói là dữ liệu được mã hoá gởi giữa Client đến Server (ứng dụng chạy Client/Server). Không đề cập đến cơ chế hoạt động bên dưới nên em không được biết.

qtra004 wrote:

Ngoài những thông tin anh conmale hỏi? Bạn có thể dùng Activity Monitor trên SQL Management Studio để xem lúc application chạy report, những query gì đang chạy và những process có bị lock không? Loại lock là gì? Nếu bạn biết được sql query của process để generate report thì bạn thảy lên đây để mình xem thử xem query đó có optimised cho performance chưa?
 


Mình sẽ thử xem sao, có gì sẽ post lên đây nhờ mọi người giúp đỡ.

À, quên nói 1 vấn đề quan trọng là Các báo cáo mà mình đề cập bên trên là Báo cáo do công ty Customize, mình nghĩ chắc cách viết không tối ưu, gây lock table hay sao (trình độ coding của người customize báo cáo có hạn, mình cũng không rành nên đọc code cũng không tìm ra chổ nào để tối ưu được). Các báo cáo có sẵn của chương trình thì mặc dù in lâu nhưng không làm treo các máy con nhập liệu Hoá đơn.

Cám ơn mọi người nhiều lắm.
Chào mọi người,

Mình đang gặp khó khăn với ứng dụng ERP có dữ liệu lớn (hiện tại khỏang 20GB/company, tổng file .mdf bao gồm nhiều company là 50GB)
Khi in các báo cáo Tồn kho và Doanh số thì truy xuất hệ thống chậm và thậm chí treo 1 số máy ở bộ phận nhập liệu Đơn hàng/hóa đơn.
Mình không chuyên sâu về SQL và không tìm được nguyên nhân gây ra vấn đề ở đây. Vậy có bạn nào hiểu sâu về SQL cũng như cách thức tìm nguyên nhân, tối ưu hóa SQL thì giúp mình với.

Nếu vấn đề này không thể chia sẻ trên diễn đàn, bạn có thể liên hệ trực tiếp mình cũng được. Xem như là mình đang tìm dịch vụ vậy mà.

Mọi người ai biết ai rành thì cũng chỉ giúp mình nhé.

Cám ơn nhiều.

Thông tin thêm :

Server IBM x3650 2x3.0Ghz Quad Core, 6GB RAM, 5x146GB SAS RAID5, Windows 2003 Ent SP1, SQL Server 2005 Ent.
Lúc bị treo đó thì thấy RAM, CPU trên Server cũng ở mức thấp (chừng 20%=30%), không bị overload.

Nguyễn Phúc Nguyên
0909.899.235
Mình cũng đã quần 2 ngày (chủ yếu là cài đặt lại chương trình) cho các máy laptop trong công ty mình do bị nhiễm virus này.
Triệu chứng các máy như sau : không nhận thiết bị, USB, bị dump, ... chậm, Skype tự động gởi message.
Lúc đầu mình quét bằng Hirenboot + BKAV Home và tự tay xóa các file imPlayok.exe gì đó, xong tiêu Windows luôn --> mình cho chạy repair nhưng repair cực kỳ lâu (khỏang 4-5 giờ).
Cuối cùng mình quyết định cài lại hết cho xong.

Theo mình thì hình như virus kiểm sóat luôn phần driver thiết bị hay sao đó.
Hic, mong mọi người giúp đỡ. Bị vậy hòai chắc bị đuổi việc luôn quá.....

Bên hosting báo IP mình bị đưa vào blacklist, tuy nhiên, theo mình hiểu thì nếu đã gởi mail ra ngòai thông qua mail server của họ thì xem như IP của mail server của họ, sao lại check ip của mình làm gì rồi block ?
Giờ bên Hosting đá qua ISP, ISP đá qua Hosting, mình không biết đường đâu mà lần.

Do bên mình dùng IP động nên mình đã kiểm tra như sau : khi gởi mail không được, mình reset modem --> có IP mới --> lúc này lại gởi mail được. Tuy nhiên, kiểm tra thì IP mới này cũng vẫn bị liệt vào blacklist mặc dù vẫn đang gởi được. ???
Mình kiểm tra IP có bị blacklist không ở đây :
http://www.mxtoolbox.com/blacklists.aspx

Đã thử dùng tool ở trang này : http://mynetwatchman.com/ thì thấy các máy đều clean hết.

Hi,

Mình đóan là vấn đề này do virus nên post ở đây. Mình đang quản lý 1 Mail Server Mdaemon Offline, Host thì của 1 NCC ở Mỹ. Chạy cũng ổn định. Nhưng gần đây lại bị tình trạng rất lạ là gởi mail không đến được người nhận. Vấn đề này lặp đi lặp lại hòai cả 2 tháng nay làm mình mệt quá.

Mình đã test như nhau :
1. Trong network của mình, log on vào hộp mail catch-all của NCC hosting gởi thử mail đến Yahoo, Gmail ---> không nhận được.
2. Mình remote vào 1 network khác, làm tương tự thì nhận được bình thường.
3. Liên hệ NCC Hosting thì họ nói họ test thấy cũng gởi nhận bình thường.

Mình đóan là có vấn đề với network của mình, cụ thể là IP, chắc là bị mail server block hay sao đó, nhưng bên NCC thì 1 mực khẳng định họ không block gì cả. Tuy nhiên, mỗi khi nhờ họ kiểm tra thì buổi chiều hoặc ngày hôm sau thì lại gởi được bình thường.smilie

Vậy theo bạn thì vấn đề có phải do network của mình không, do virus không ? Và có cách nào để mình check ?

Cám ơn và mong nhận được sự góp ý từ mọi người.

NPN
Hi,

Khỏang 1 năm trước mình có bị 1 số con virus làm rớt mạng (kavo.exe hay amo.exe gì đó), cứ máy có virus vô mạng là kể như rớt Internet luôn. Ngòai ra cũng bị dính con gì mà giả gateway --> cũng làm rớt mạng luôn. Nhưng trong tình huống gần đây mình bị lại khác :
Máy của Sếp mình mỗi lần về công ty gắn vô là làm rớt mạng, lúc đầu mình chẳng để ý, tưởng là Modem bị điên điên nên tắt nguồn và mở lại (kỹ thuật FPT hướng dẫn vậy hòai hà) thì khỏang 2 phút sau là vào mạng được. Tuy nhiên, nếu để không tắt, mở modem thì bị rớt mạng đến khỏang 15-20 phút.

Mình đã test thì khỏang 10 lần đều giống vậy :
Lúc máy Sếp bật lên và lấy IP từ DHCP là lúc bắt đầu rớt mạng (IP lấy từ DHCP trên Server DC luôn, Access Point chỉ làm Bridge). Sau khi máy Sếp lấy IP thành công, lúc này mình kiểm tra thấy :
1. Máy Sếp Ping Modem được, vào Internet được.
2. Các máy khác không Ping Modem được, không vào Internet được luôn, chứ không có vụ chậm hay có độ trễ gì hết.

Thiệt kỳ lạ, giống như máy đó vô là giành để sử dụng mạng 1 mình vậy.

Trong 1 lần Sếp không logon được vào máy do virus, mình đã tranh thủ quét virus trên máy Sếp bằng Kaspersky trong MiniXP bản HirenBoot 10.0, ra 1 đóng Worm (dính đến forever.exe, romantic.exe, userinit.exe). Mình cho delete hết.
Tuy nhiên tình trạng vẫn còn.
Mình cũng đã kiểm tra các cấu hình card mạng Wireless và Ethernet của máy Sếp, không bị trùng IP với Gateway.

Chẳng hiểu bị gì nữa, có bạn nào bị giống mình không ? Hay có bạn nào có ý kiến hay giải pháp gì không, cho mình biết với.

Cám ơn nhiều.

Mình thử dùng log của Firewall Windows khi máy Sếp mới bật lên --> thấy 1 số thông tin bên dưới (máy Sếp : 192.168.1.19, máy mình : 192.168.1.15) nhưng không biết vậy có gì bất bình thường không nữa.

2009-09-23 08:20:27 DROP UDP 192.168.1.23 192.168.1.255 137 137 78 - - - - - - - RECEIVE
2009-09-23 08:20:39 DROP UDP 192.168.1.2 192.168.1.255 520 520 72 - - - - - - - RECEIVE
2009-09-23 08:20:44 DROP UDP 0.0.0.0 255.255.255.255 68 67 334 - - - - - - - RECEIVE
2009-09-23 08:20:45 DROP UDP 0.0.0.0 255.255.255.255 68 67 328 - - - - - - - RECEIVE
2009-09-23 08:20:46 DROP UDP 0.0.0.0 255.255.255.255 68 67 340 - - - - - - - RECEIVE
2009-09-23 08:20:51 DROP UDP 0.0.0.0 255.255.255.255 68 67 340 - - - - - - - RECEIVE
2009-09-23 08:20:55 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:20:56 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:20:57 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:20:57 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:20:58 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:20:59 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:00 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:01 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:01 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:02 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:04 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:04 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:05 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:06 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:06 DROP UDP 192.168.1.19 192.168.1.255 138 138 237 - - - - - - - RECEIVE
2009-09-23 08:21:09 DROP UDP 192.168.1.2 192.168.1.255 520 520 72 - - - - - - - RECEIVE
2009-09-23 08:21:17 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:18 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:19 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:19 DROP UDP 192.168.1.19 192.168.1.255 137 137 96 - - - - - - - RECEIVE
2009-09-23 08:21:20 DROP UDP 192.168.1.19 192.168.1.255 138 138 237 - - - - - - - RECEIVE
2009-09-23 08:21:20 DROP UDP 192.168.1.19 192.168.1.255 138 138 207 - - - - - - - RECEIVE
2009-09-23 08:21:20 DROP UDP 192.168.1.10 192.168.1.255 138 138 229 - - - - - - - RECEIVE
2009-09-23 08:21:24 DROP UDP 192.168.1.19 239.255.255.250 1039 1900 161 - - - - - - - RECEIVE
2009-09-23 08:21:27 DROP UDP 192.168.1.19 239.255.255.250 1039 1900 161 - - - - - - - RECEIVE
2009-09-23 08:21:30 DROP UDP 192.168.1.19 239.255.255.250 1039 1900 161 - - - - - - - RECEIVE
2009-09-23 08:21:39 DROP UDP 192.168.1.2 192.168.1.255 520 520 72 - - - - - - - RECEIVE
2009-09-23 08:21:42 DROP UDP 192.168.1.19 239.255.255.250 1050 1900 165 - - - - - - - RECEIVE
2009-09-23 08:21:43 DROP UDP 192.168.1.19 255.255.255.255 68 67 328 - - - - - - - RECEIVE
2009-09-23 08:21:44 DROP UDP 192.168.1.19 239.255.255.250 1050 1900 160 - - - - - - - RECEIVE
2009-09-23 08:21:55 DROP UDP 192.168.1.200 239.255.255.250 3075 1900 166 - - - - - - - RECEIVE
2009-09-23 08:21:55 DROP UDP 192.168.1.200 239.255.255.250 3075 1900 166 - - - - - - - RECEIVE
2009-09-23 08:22:09 DROP UDP 192.168.1.2 192.168.1.255 520 520 72 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1614 1900 312 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1615 1900 321 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1616 1900 384 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1617 1900 376 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1618 1900 321 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1619 1900 360 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1620 1900 392 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1621 1900 321 - - - - - - - RECEIVE
2009-09-23 08:22:28 DROP UDP 192.168.1.7 239.255.255.250 1622 1900 380 - - - - - - - RECEIVE
2009-09-23 08:22:33 DROP TCP 192.168.1.19 192.168.1.15 1113 445 48 S 689072128 0 16384 - - - RECEIVE
2009-09-23 08:22:36 DROP TCP 192.168.1.19 192.168.1.15 1113 445 48 S 689072128 0 16384 - - - RECEIVE
2009-09-23 08:22:40 DROP UDP 192.168.1.19 192.168.1.255 138 138 202 - - - - - - - RECEIVE
2009-09-23 08:22:40 DROP UDP 192.168.1.19 192.168.1.255 137 137 78 - - - - - - - RECEIVE
2009-09-23 08:22:40 DROP UDP 192.168.1.10 192.168.1.255 137 137 78 - - - - - - - RECEIVE
2009-09-23 08:22:41 DROP UDP 192.168.1.19 192.168.1.255 137 137 78 - - - - - - - RECEIVE
2009-09-23 08:22:42 DROP UDP 192.168.1.19 192.168.1.255 137 137 78 - - - - - - - RECEIVE

thangnhochathanh wrote:
Các bạn giúp mình vời máy mình không thể mở ổ đĩa theo cách bình thường là nhấn kép vào là mở lên được mà nó mở ra màn hình tìm kiềm. các bạn giúp mình với. Thanks

 


Bạn show hết các file ẩn, kể cả các file được HĐH bảo vệ. Tìm xem có file autorun.inf thì xóa đi. Mình đoán trong file Autorun.inf này chỉ đường dẫn để gọi chương trình search.
Theo như tình huống đó thì hình như modem của bạn cấp dãy khác dãy 192.168.1.0/24 mà bạn set IP tĩnh.
Khi các máy đều kết nối Internet được nghĩa là các máy đã "thấy" nhau rồi đó. Bạn thử truy cập lẫn nhau xem.
Còn muốn biết cấu hình cho máy làm Server hay Client thì trước hết bạn phải hiểu khái niệm Server và Client đã.
Mail online mà bạn có địa chỉ IP tĩnh không ? Và từ địa chỉ này có reverse lại ra domain của bạn được ? Nếu chưa thì bạn nhờ bên cung cấp IP làm cho. Xong thì test lại thử.

vuahung103 wrote:

lama wrote:
Bạn vào menu Setup, Primary Domain, tab Delivery, chọn Always send every outbound email to the server specified below. Nhập các giá trị cần thiết vào Mail Server, username/pass cho Requires Authentication. Chúc bạn thành công. 


Lama cho mình hỏi thêm: Trong phần mail server thì mình biết là nhập IP của mailserver rồi. Vậy còn phần username/pass cho Requires Authentication mình sẽ phải nhập user và pass nào? Khi mình cài Mdaemon nó có bắt thiết lập 1 user làm admin và mình cũng có tạo 1 acc admin+pass, mình hỏi có phải là khai báo user này hay là user nào?
Thanks! 

Đây là username/pass của 1 account mail trên Mail Server nơi bạn Hosting (bạn có thể dùng account mà bạn POP mail về đó). À, mà bạn đang dùng Mail Offline chứ ?
Hi,

Mình đang tìm cuốn IT Manager's Handbook. Ai có share cho mình với. Cám ơn.
Link : http://www.itmanagershandbook.com/
Bạn vào menu Setup, Primary Domain, tab Delivery, chọn Always send every outbound email to the server specified below. Nhập các giá trị cần thiết vào Mail Server, username/pass cho Requires Authentication. Chúc bạn thành công.

No_Way wrote:
ĐHQG - ĐH Khoa Học Tự Nhiên ( đối diện nhà sách Nguyễn Văn Cừ Q5, quên địa chỉ rài nhưng ko khó kiếm cứ hỏi đường lên nhà sách NVC rùi nhìn qua mé bên kia đường là nó đó smilie )
Thân  

ĐH Khoa học Tự nhiên nào mà đối diện nhà sách Nguyễn Văn Cừ trời. Đối diện nhà sách Nguyễn Văn Cừ là đường An Dương Vương. smilie Vì mình học ĐHKHTN ra mà. Cái trung tâm tin học ĐHKHTN nằm ngay sát trường KHTN luôn (227 Nguyễn Văn Cừ). Ở trong là đào tạo theo chương trình dài hạn : KTV, ..., ở phía trước là đào tạo theo chương trình quốc tế gì đó : MCSA, MCSE, MCDBA, .. và 1 số chương trình về lập trình viên.

Riêng học MCSA thì mình nghĩ bạn nên học Nhất nghệ, mình đã học ở đây và thấy kiến thức tiếp thu được là rất nhiều. Hiện nay thì Nhất nghệ cũng là Gold Partner của Microsoft rồi. Bạn vào trang web và diễn đàn của Nhất nghệ để tham khảo thêm.

Còn học CCNA thì mình nghĩ VNPRO là tốt nhất. Tuy nhiên, hơi xa nếu bạn ở trung tâm.

www.nhatnghe.com/forum
www.vnpro.org/forum

P/S : Mình cũng là thành viên của cả 2 diễn đàn trên smilie .
Hi,

Công ty mình sử dụng mail Mdaemon offline, gởi mail thông qua Mail server trên hosting, trước đây vẫn gởi nhận bình thường. Gần đây lại có trường hợp xem trong log của Mdaemon thì mail đã đến người nhận, tuy nhiên, thật sự lại không đến được. Thử cho gởi mail trực tiếp không thông qua Mail server của hosting, xem trong log thì thấy báo là IP của mình nằm trong database của tụi Spamhaus và kêu vào đó remove ra. Vào trang www.spamhaus.org, đọc 1 hồi thì thấy nó giảng giải là có thể trong mạng mình có máy nào đó gởi mail hàng loạt ra do đó tụi nó sẽ đánh dấu IP của mình và không cho đến tay người nhận.

Thử gởi mail ở 1 mạng khác thì được.

1. Hơi ngạc nhiên, vì khi mình gởi mail thông qua Mail Server trên Hosting (mà thằng này thì xịn rồi), liên quan gì đến IP (public, dynamic) của mình ? Sao nó có thể căn cứ vào đó để block không cho email đến được.

2. Mình đã dùng các tool mà trang Spamhaus này khuyến cáo để diệt mass mail worm nhưng không tìm ra con nào cả.
Cũng có thử gỡ Modem ra, lấy 1 máy laptop cài Etheral, gán IP cho máy này là IP của Modem, rồi chạy Etheral bắt traffic port 25 nhưng cũng chỉ thấy có máy mail Server gởi. Mà máy Mail Server đã scan bằng các tool trên, không thấy con worm nào cả. Mail Server có cài Symantec 10, luôn update.

Khi tắt Modem để lấy IP mới thì lại gởi được. Tuy nhiên, thật sự không an tâm vì mình vẫn chưa tìm được nguyên nhân.

Có bạn nào biết cách tìm ra nguyên nhân thì chỉ mình với. Cám ơn nhiều lắm.
Hầu hết virus lây lan hiện nay ở VN là qua USB mà.
Vô đây đầy nhóc --> www.bkav.com.vn
Bạn thử gỡ ổng cứng ra, đem đến 1 máy khác sạch và cài chương trình Antivirus nào mà diệt được con này. Diệt xong, nếu không vào Windows được thì mới phải cài lại Windows.
Hi,

Mình muốn lưu Event log ( trên DC và trên các Server khác) 1 cách tự động. VD: Ngày 27/5/2007 Application log sẽ được lưu là App_270507.log
Search trên mạng thì được 1 số tool của Microsoft như dumpel.exe, elogdmp.exe, psloglist.exe, ... nhưng không thể nào lập lịch lưu thành tên file như mình mong muốn.

Ai đã từng làm vụ lưu log lại ra file như vậy xin chỉ giúp. Thanks so much.

P/S: Hình như dumpel.exe không hỗ trở DNS log và Active Directory Log, nhưng tìm mãi chẳng thấy chổ download elogdmp.exe đâu. Ai biết chổ download chỉ dùm mình luôn. Thanks.
Hi,

Mình sử dụng Mdaemon v8.0.3. Đang gặp vấn đề là user không nhận được mail nếu họ trong danh sách BCC list.

Mình tìm được thông tin sau trên MDaemon

BCC Headers in MDaemon
KBA-01291

Summary

--------------------------------------------------------------------------------


BCC by definition is blind. The header should never be created by a mail client because the message should not display that it was sent to anyone in the BCC field. Here's what the headers look like when composing a message with a BCC:

Received: from robin ([127.0.0.1]) by test.mail ([127.0.0.1]) with SMTP (MDaemon.PRO.v6.0.5.R); Tue, 20 Aug 2002 10:09:15 -0400
Reply-To: 'Robin' <test@company.mail>
From: 'Robin' <test@company.mail>
To: <yep@company.mail>
Subject: test

There is no BCC info in the message even before it goes out to the Internet for delivery. (I BCCed robin@isp.com.)

The way that BCC mail is routed is via the SMTP envelope information. Mail servers pass the message along via SMTP and the delivery information is kept in tact.

When you download the message via DomainPOP, MDaemon does not have the SMTP delivery information any longer. It has to make the best guess as to where the message should go.

Some ISPs stamp a header so that the SMTP delivery information is available for parsing, but it's not required. These headers may be “Envelope-To” or “Delivered-To” or something similar. Your ISP may be able to do something along these lines. Alternatively you could ask them if you could receive mail via ATRN instead of POP because then the SMTP envelope is still there.


Như vậy, để nhận được mail, mình phải nhờ bên Hosting Mail Server chèn thông tin vô Header ? ATRN thì mình không rành.

Trường hợp này theo mình cũng thường gặp lắm, bạn nào giải quyết rồi xin chia sẻ.

Cám ơn nhiều.
Mở port 3000. Trỏ vô máy MDaemon.
Bạn nói rõ hơn về hệ thống mail bên bạn ra sao đi. Mọi người sẻ cùng góp ý để tìm ra hướng giải quyết. smilie)
Trong Mdaemon mặc định nó sẽ chọn chế độ gởi trực tiếp từ Mail Server nội bộ của bạn do đó dễ bị đưa vào Bulk. Để không bị trường hợp này, chỉnh lại gởi thông qua 1 Mail Server nào đó. ( Trong Primary DNS, tab Delivery).
 
Go to Page:  Page 2 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|