我有一个需要包含产品的SQLite数据库.这些产品具有固定格式的复合产品编号,包括类别,组和产品编号(cccccc.gg.ppp).每次插入新产品时,都应使用类别和组编号构建新产品编号,然后使用该编号增加1中的最高产品编号.
为此,我考虑将所有三个数字存储在单独的字段中,并使用视图动态组合产品编号.为了实现这一点,我需要添加前导零,因为产品编号的格式是固定的.
但是,我似乎无法找到一个内置的SQLite函数,它可以让我这样做...... :-(
我宁愿不写自定义函数,因为我们可能不得不与其他开发人员共享数据库,以便他们从中读取数据; 我不知道他们将使用什么平台或语言.
可以这样做吗?或者我们必须找到不同的解决方案吗?
我最近在Linux Mint 15 MATE 64位上安装了MonoDevelop V3.0.3.2.我通过软件管理器安装了MonoDevelop
我试图根据http://monodevelop.com/Documentation/Creating_A_Simple_Solution创建一个新项目
不幸的是,我在尝试构建文件名尚未设置时收到错误.收到的错误详情如下.
System.InvalidOperationException: File name has not been set
at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in <filename unknown>:0
at System.Diagnostics.Process.Start () [0x00000] in <filename unknown>:0
at MonoDevelop.Core.Execution.ProcessWrapper.Start () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) MonoDevelop.Core.Execution.ProcessWrapper:Start ()
at MonoDevelop.Platform.GnomePlatform.StartConsoleProcess (System.String command, System.String arguments, System.String workingDirectory, IDictionary`2 environmentVariables, System.String title, Boolean pauseWhenFinished) [0x00000] in <filename unknown>:0
at MonoDevelop.Core.Execution.ProcessService.StartConsoleProcess (System.String command, System.String arguments, System.String workingDirectory, IDictionary`2 environmentVariables, IConsole console, System.EventHandler exited) [0x00000] in …
Run Code Online (Sandbox Code Playgroud) 我们有2个应用程序,第一个是VCL项目,另一个是Windows服务.
在VCL项目中我们做到:
try
except
on E: Exception do
// do something with E.Message
end
Run Code Online (Sandbox Code Playgroud)
但在Windows服务(使用多个线程)中我们使用:
try
except
// do something with Exception(ExceptObject).Message
end
Run Code Online (Sandbox Code Playgroud)
我从同事那里获得的信息是"我们必须在线程中使用ExceptObject,在使用GUI的应用程序中使用E:Exception".但我找不到任何关于此事的内容.
我在这里找到了一个例子http://edn.embarcadero.com/article/10452,它使用一个实例变量来存储异常并使用ExceptObject,但没有解释原因.
这个ExceptObject是否是线程安全的(因为它来自单元'System')?
那么在Delphi中处理异常的正确方法是什么?为什么有多种方法可以做到这一点?
在我的应用程序中,我希望能够使用与不同扩展名相关联的程序执行具有任意名称和扩展名的文件.
例如,假设我有一个名为的文件file.dat
,但我想用记事本打开它,就像它被命名file.txt
或file.dat.txt
.此外,我没有权限重命名该文件,所以这是不可能的.
如果文件被称为file.txt
,我可以调用ShellExecute的.但是在打电话时失败了file.dat
; Windows抱怨该文件没有关联.
我不想对特定的可执行文件进行硬编码,因为(在上面的示例中)最终用户可以.txt
使用Wordpad而不是记事本来关联文件.在这种情况下,我希望file.dat
用Wordpad打开我.
我需要运行myApp.exe,依次启动iexplore.exe。什么是最健壮,通用的方式(与OS位版本无关)?
您能指出我正确的注册表项/ env var /其他意思是这样做吗?
谢了,兄弟们
我刚刚将一个Web服务从Delphi.NET 2006移植到Delphi Prism 2009(在Visual Studio 2008 IDE中运行).但我无法找到我应该设置(或取消设置)条件编译常量的位置!
我是否瞎了,这个选项被遗漏了,还是VS不支持?
[编辑:感谢Mohammed Nasman的链接] MSDN告诉我使用Project Designer设置它们.首先,我花了一段时间才发现项目菜单仅在选择解决方案时才可见(而不是Web服务项目).然后,仍然无法在Project Designer中设置条件编译常量!
我只是找不到一种方法来获取ASP.NET项目中的项目选项 ...它真的不可能吗?
情况:我\xe2\x80\x99有一个使用UTF-8作为其内部字符串格式的外部DLL。接口函数都使用 PAnsiChar 来传递字符串。
\n\n我的应用程序的其余部分使用 Delphi\xe2\x80\x99s 本机string
类型;由于 I\xe2\x80\x99m 使用 Delphi 2010,这将映射到UnicodeString
.
如何可靠地将这些 PAnsiChar 参数(指向 UTF-8 编码字符串)转换为 UnicodeString?
\n\n我有这个功能,我认为效果很好:
\n\nfunction PUTF8CharToString(Text: PAnsiChar): string;\nvar\n UText: UTF8String;\nbegin\n UText := UTF8String(Text);\n Result := string(UText);\nend;\n
Run Code Online (Sandbox Code Playgroud)\n\n...但是现在我\xe2\x80\x99遇到了结果字符串损坏的情况;当我将 PAnsiChar 保存到文件时,它 \xe2\x80\x99s 很好;但是当我使用上述函数转换后保存生成的字符串时,它\xe2\x80\x99s 已损坏。
\n\n或者应该正常工作,这是否表明存在其他内存(取消)分配问题?
\n\n编辑:我最终通过将转换后的字符串分配给局部变量字符串而不是直接将其传递给另一个函数来摆脱内存损坏。
\n我的桌面应用程序必须从Internet下载文件.文件的路径是已知的,文件名本身是半变量的,即其他人将在那里放置新文件,我的应用程序将不得不下载它们.
现在我想确保URL是安全的,并且它将被正确解释.另外,如果文件名中有'#'(你永远不知道),我确实希望它被编码.Javascript有两个不同的功能:encodeURI
和encodeURIComponent
.后者还编码'#'字符,以及其他内容.当然,我可以自己动手,但我认为必须有功能准备就绪,我不妨做出一些旧的错误.
我将使用一个使用WinInet系列API函数(InternetOpen及其同类)的对象下载该文件.
所以我开始在MSDN上搜索,当然,还有UrlCanonicalize.但也有UrlEscape,CreateUri(但这不存在于Delphi 2010单元中),最后是InternetCreateUrl,它要求我拆分整个URL.我宁愿将URL的第一部分与URLEncoded文件名连接起来.
此外,它们都有大量不同的标志,不同的默认值在Windows版本的过程中发生了变化,我再也无法弄清楚它们之间的差异.有人知道哪一个最适合这个目的吗?
我编写了一个JavaScript 小部件,它添加行号,但我不明白的一件事是在复制文本时防止复制数字。我希望人们能够复制数字周围的序列,但不能复制数字。 以下是脚本结果的示例。
基本上:
<span>useful stuff to be copied </span>
<span style="some-mysterious-setting: True;"> gloss to be discarded in selection </span>
<span> useful stuff to be copied</span>
Run Code Online (Sandbox Code Playgroud)
这些数字作为单独的跨度元素实现,而不是作为表格或任何花哨的东西。我尝试user-select: none;
了 CSS 中的变体,但这意味着它不会突出显示,但它仍然会复制编号。
我有Delphi XE4 Enterprise.我如何知道我是否有FireMonkey或FM2或FM3?
Embarcadero在哪里存储有关FireMonkey版本的详细信息?
假设我已经使用以下命令从chiselapp.com匿名克隆了一个公共存储库:
$ fossil clone https://chiselapp.com/user/elviejo/repository/dwpt2 dwpt2.fossil
$ fossil open dwpt2.fossil
Run Code Online (Sandbox Code Playgroud)
现在我想提交一个新文件:
$ fossil commit -m "these are my modifications"
Run Code Online (Sandbox Code Playgroud)
Fossil 如何提示我输入用户登录名和密码?
PS:我知道我可以首先使用以下语法进行克隆:
https://user:pass@chiselapp.com
Run Code Online (Sandbox Code Playgroud)
但是让我们假设我不能再次克隆...谢谢。
delphi ×6
delphi-2010 ×2
fossil ×2
winapi ×2
asp.net ×1
c++ ×1
css ×1
firemonkey ×1
formatting ×1
html ×1
javascript ×1
leading-zero ×1
mono ×1
numbers ×1
oxygene ×1
pointers ×1
process ×1
shellexecute ×1
sqlite ×1
string ×1
url-encoding ×1
urlencode ×1
utf-8 ×1