Recently, I am working on a project. The main process of this project is as follows:
1. The existing system of the customer application inserts data into the interactive data table of the SQL database
2. read data from the interactive data table to the Project software.
3. The project software connects to the company's existing systems through interfaces to achieve Data Control
4. Send the control result back to the interactive data table.
5. Customer's system read results
After more than half a month, the Project software was developed, tested within the company, and then delivered to the customer for use.
Everything went smoothly, but the customer was unable to install the corresponding environment as required due to various reasons, such as sql2005 or above, but the customer used SQL2000.
No way. The customer is God, and the customer has to use SQL2000. Fortunately, the features of sql2005 or later versions are not used in the database design at the early stage, so it is okay to use SQL2000.
But the problem arises again. When the customer uses the Project software to connect to SQL2000, It unexpectedly crashes. The customer reported that the software had a problem. I read the email they sent and read it carefully. There are probably two problems.
Problem 1: When you connect to Windows 7, the system prompts that the config file cannot be modified.
Problem 2: When you use the XP system to connect, the software crashes due to exceptions.
After the problem was obtained, I analyzed it and preliminarily determined that problem 1 was caused by win7's permission management, later, I built a standard user and administrator user on Windows 7 for testing. When using standard user operations, the problem is reproduced. And then use the administrator user. The problem disappears. In this way, the problem is solved.
However, after another thought, we just designed the software that meets the requirements. Is the problem of win7 management permission still under our control? We can think so, but the customer won't. The customer only knows that there is a problem with the use of our design software, so the first reaction is the software problem. After that, we actually tested and reproduced the results. We found that not our problem, but the user permissions assigned by the customer were insufficient. Therefore, some problems are not our own problems, but because they are produced by using our products, we also need to solve them. At least we must prove that they are not our problems. Fortunately, I encountered such a problem with Windows 7 later, or I would have to worry about whether the program design had a problem.
As for the second question, it is even more difficult. First, the customer had to use SQL2000, and the environment could not meet our requirements. Now there is a problem, but we need to contact us again. What can we do? You have to find the problem. So I spent a lot of effort on SQL2000 (the company's network speed was slow, it took 4 hours to complete), and then installed it on XP for a long time, it is found that SQL2000 can run. The problem cannot be reproduced. Why?
Later I thought, I installed sql2008 on XP. Is it because of this? When I checked, I found that SQL2000 was connected to the sql2008 instance. I blame myself for this. I didn't pay attention to it when installing SQL2000. However, this cannot be explained because the problem cannot be reproduced. So I thought about installing a clean environment for testing.
As a result, we finally installed a win2003 Server Virtual Machine. After installation, install SQL2000 immediately. I thought, now the test should be able to understand the problem. However, when I used a software test, I found that I could not find the SQL2000 database. Why? Decisive Google, after a piece of information, finally found the eye, because the host to access the database in the virtual machine, is a remote access. For remote access, the TCP/IP channel is enabled on SQL2000, so SQL2000 is enabled immediately and the default port 1433 of TCP/IP is set. But still unable to connect?
Why is this? Capture head! Capture head!
Continuing with Google, I finally found my eye after I checked the N article (the online article is so annoying that I copied and pasted it. It is a patch for SP3, but the SQL2000 is for sql2000sp4. Isn't it equivalent to a patch? After a long struggle, I finally decided to try it. So I did not hesitate to download it. Helpless network speed, and nearly an hour of waiting, finally completed the patch, installed.
Er !! Why not !! Why! Why! Why!
So Google searched again and finally caught a needle after rummaging through the sea of articles. It is said that the SP4 patch is required for server2003! Crazy! Crazy! There is no way, and it is downloaded and installed in the last hour. Then, as mentioned in this Article, confirm the version, so select @ version. Check that the version is 8.0.2039. Then connect and finally OK.
After a flip, the Project software is connected to SQL2000 completely OK. So I asked the customer if SQL2000 was not patched and the customer was not clear about the response. So the customer asked for SP4 patch installation.
I thought about it. Now it's okay. After the customer completes the installation, it still does not work !!
Why not! No! No!
I thought about it, thought about it, and finally thought about whether the database user gave me insufficient permissions? Then I asked the customer about the user who was given by the SQL2000 database administrator. I used the SA user during the test, so I further determined the permission issue. Therefore, we recommend that you change the High-privilege user and test the permissions based on your own ideas. When the permissions are insufficient, the program will crash. When I confirmed this was the reason, the customer also gave feedback. After the permission was elevated, it was OK.
The problem is always solved. But thinking about these two problems does not seem to be the software itself, one is caused by win7 permission management, and the other is caused by SQL2000 permission management. However, if you think about it carefully, there are also some reasons for the software design defects. For example, if SQL2000 has insufficient permissions, you should prompt that the program crashes. This was due to a database category defect I designed myself, so I made some adjustments.
From another perspective, the problem reported by the customer is not necessarily the essence of the problem. It is just a representation that must be tested before confirmation. So don't be blinded by the appearance. The actual measurement is the final principle.