我在这里发现问题如果检索方法返回'null'或者当它无法产生返回值时抛出异常?和是否应函数返回null或一个空对象?,但我认为我的情况完全不同.
我正在编写一个由Web服务和客户端组成的应用程序.Web服务负责访问数据并将数据返回给客户端.我设计我的应用程序是这样的:
//网络服务
try
{
DataTable data = GetSomeData(parameter);
return data
}
catch (OopsException ex)
{
//write some log here
return null;
}
Run Code Online (Sandbox Code Playgroud)
//客户:
DataTable data = CallGetSomeData(parameter);
if(data == null)
{
MessageBox.Show("Oops Exception!");
return;
}
Run Code Online (Sandbox Code Playgroud)
好吧,有一个不返回null的规则.我不认为我应该重新抛出异常并让客户端捕获SoapException.你有什么评论?有没有更好的方法来解决这个问题?
谢谢.
我刚刚开始创建存储函数,这是我第一次,所以我遇到了一些问题。SELECT test();目前我使用(测试是现在的函数名称)调用该函数。我想向函数发送一个数字(用户名 ID)并返回用户名。
我通过使用SELECT test(1);1 来实现此目的,即表中用户的 ID。这似乎有效,因为返回了用户名,但如果我输入任何数字,也会返回相同的用户名。
BEGIN
DECLARE new_username VARCHAR(90);
SELECT `username` INTO new_username FROM `users` WHERE `ID` = ID;
return new_username;
END
Run Code Online (Sandbox Code Playgroud)
我已将参数设置为ID int。
我是否正确地认为关键字INTO会将用户名的值放入变量中new_username?如果我在没有的情况下运行它,INTO我会收到错误:
不允许从函数返回结果集
我在这方面有没有犯过任何明显的错误,我希望我没有完全错误。感谢您的任何建议:)。
编辑:我刚刚在表中添加了几行,现在收到错误:
结果包含多行
完整的sql版本:
CREATE DEFINER=`elliotts`@`%` FUNCTION `test`(ID int)
RETURNS varchar(32) CHARSET latin1
BEGIN
DECLARE new_username VARCHAR(32);
SELECT `username`
INTO new_username
FROM `users`
WHERE `ID` = ID;
return new_username;
END
Run Code Online (Sandbox Code Playgroud) 我有一个Lua函数返回表(包含字符串集)函数运行正常使用此代码:
lua_pushstring (lua, "funcname");
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pushstring(lua, "someparam");
lua_pcall (lua, 1, 1, 0);
Run Code Online (Sandbox Code Playgroud)
该函数返回一个表.如何从我的C++代码中读取它的内容?
如果我使用python 2.6和Qt为windows创建一个gui,然后想在solaris或linux世界中运行.
我在两个系统上都需要什么,我猜两个平台的2.6和Qt.这是正确的还是会有更好的解决方案.
如果是wxpython,同样对吗?
在迭代时是否有Linq方式知道序列中的下一个元素是什么?作为一个具体的例子,假设我有一个整数列表,我想计算每个元素和它的后继之间的差异,所以例如我希望能够写
var myList = new List<int>() { 1,3,8,2,10 };
var differences = myList.Select( ml => ml.Next() - ml ) // pseudo-code, obviously
Run Code Online (Sandbox Code Playgroud)
我想要的结果是列表{2,5,-6,8}.
显然这在for循环中是微不足道的,但任何人都可以想到Linq中的一个简洁的单行程来完成这项工作吗?
我编写了一个远程服务,客户端可以使用Android提供的IPC常用机制登录,绑定似乎有效.当我去调用一个必须将对象作为参数传递的方法时出现问题,因为我得到了这个"好奇"的异常:
10-19 15:09:04.601: ERROR/AndroidRuntime(2985): FATAL EXCEPTION: main
10-19 15:09:04.601: ERROR/AndroidRuntime(2985): java.lang.NullPointerException
10-19 15:09:04.601: ERROR/AndroidRuntime(2985): at android.os.Parcel.readException(Parcel.java:1253)
10-19 15:09:04.601: ERROR/AndroidRuntime(2985):at android.os.Parcel.readException(Parcel.java:1235)
10-19 15:09:04.601: ERROR/AndroidRuntime(2985): at it.domod.commons.interfaces.DeviceManager$Stub$Proxy.sendCommand(DeviceManager.java:121)
Run Code Online (Sandbox Code Playgroud)
它似乎是从.aidl文件生成的代理类抛出的.
更奇怪的是,对象似乎正确传递但可能存在错误.任何的想法?
我正在创建一个非常简单的Win32 C++应用程序,它的唯一目的就是只显示一个半透明的PNG.窗口不应该有任何镶边,并且所有不透明度都应该在PNG本身中控制.
我的问题是当窗口下的内容发生变化时,窗口不会重新绘制,因此PNG的透明区域与应用程序最初启动时窗口下的内容"卡住".
这是我设置新窗口的行:
hWnd = CreateWindowEx(WS_EX_TOPMOST, szWindowClass, szTitle, WS_POPUP, 0, height/2 - 20, 40, 102, NULL, NULL, hInstance, 0);
Run Code Online (Sandbox Code Playgroud)
对于RegisterClassEx的调用,我有这个背景集:
wcex.hbrBackground = (HBRUSH)0;
Run Code Online (Sandbox Code Playgroud)
这是WM_PAINT消息的处理程序:
case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps);
Gdiplus::Graphics graphics(hdc);
graphics.DrawImage(*m_pBitmap, 0, 0);
EndPaint(hWnd, &ps);
break;
}
Run Code Online (Sandbox Code Playgroud)
需要注意的一点是,应用程序始终停靠在屏幕左侧,不会移动.但是,当用户打开,关闭或移动其下的窗口时,应用程序下面的内容可能会发生变化.
当应用程序首次启动时,它看起来很完美.PNG的透明(和类似透明)部分完美展现.但是,当应用程序下面的背景发生变化时,后台不会更新,它会在应用程序首次启动时保持不变.实际上,WM_PAINT(或WM_ERASEBKGND在后台更改时不会被调用).
我已经玩了很长一段时间了,已经接近100%正确,但不是那里.例如,我尝试将背景设置为(HBRUSH)NULL_BRUSH,我尝试处理WM_ERASEBKGND.
当窗口下的内容发生变化时,可以做些什么来重新绘制窗口?
总而言之,我在一个显示评论的网站上有动态页面.如果没有与特定城市/县/区域/等相关联的评论,则mysql查询返回0行,触发以下代码:
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
include("http://{$PDS['site']}/404.php?request=".urlencode($_SERVER['REQUEST_URI']));
exit;
}
Run Code Online (Sandbox Code Playgroud)
在某些webhost上,这会触发"URL文件访问被禁用"错误.这很好,但是在允许访问URL文件的文件上,404文件包含在内并正确显示.我稍微更改了代码以显示如下的绝对路径:
if (!$validRevQuery) {
header("HTTP/1.0 404 Not Found");
$_GET['request'] = urlencode($_SERVER['REQUEST_URI']);
include($_SERVER['DOCUMENT_ROOT']."/404.php");
exit;
}
Run Code Online (Sandbox Code Playgroud)
而现在,它给了我通用的"哎呀!这个链接似乎被打破了." 错误页面.(我有谷歌工具栏,所以这可能会有所不同,具体取决于浏览器和插件).不知道为什么会这样,所以任何帮助都表示赞赏!