小编Kai*_*ran的帖子

SQL Server存储过程更新和返回单值

我需要调用一个存储过程,给它一个报告id(int)并让它更新一个带有确认号(varchar)的报告表(确认#在存储过程中生成)并返回确认号(我将需要它将其返回到Web服务/网站).

我的存储过程代码:

DECLARE PROCEDURE [dbo].[spUpdateConfirmation]
@ReportID int
AS
BEGIN
   Declare @Confirmation varchar(30) = replace(replace(replace(convert(varchar(16),CURRENT_TIMESTAMP,120),'-',''),' ',''),':','')+convert(varchar(24),@ReportID)
   PRINT @Confirmation

   UPDATE Report
   SET  Confirmation = @Confirmation
   WHERE ReportID = @ReportID;

   RETURN @Confirmation
END
Run Code Online (Sandbox Code Playgroud)

我对存储过程的调用:

execute [spUpdateConfirmation] 2
Run Code Online (Sandbox Code Playgroud)

我在表中确认已插入值但是我收到此错误消息:

2013050219072

(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

消息248,级别16,状态1,过程spUpdateConfirmation,第12行
varchar值'2013050219072'的转换溢出了一个int列.
'spUpdateConfirmation'过程尝试返回NULL状态,这是不允许的.将返回状态0.

问题:我做错了什么?

我理解溢出是什么,对于int来说值太大了,但是我使用了convert to varchar,insert to table column typevarchar(30)

我还在SQL中测试了这个语句,它运行正常:

print replace(replace(replace(convert(varchar(16),CURRENT_TIMESTAMP,120),'-',''),' ',''),':','')+convert(varchar(24),2)
Run Code Online (Sandbox Code Playgroud)

它返回:2013050219162

sql sql-server stored-procedures

4
推荐指数
1
解决办法
2万
查看次数

如何使用VBA在许多文本.log文件中找到特定字符串?

这是我到目前为止找到文件夹中所有日志文件的代码.但我需要能够在每个文件中找到一个特定的字符串,如果它在一个文件中找到,停止查找并退出循环并报告它所在的文件名.

似乎有很多不同的方法来打开文件并搜索它我不知道哪个是最好的,我通常不使用VBA但是我现在只能访问它.

另外,最多可以有36个日志文件,每个文件最多5MB.

Sub StringExistsInFile()
    Dim TheString As String

    TheString = "MAGIC"

    Dim StrFile As String
    StrFile = Dir("c:\MyDownloads\*.log")
    Do While Len(StrFile) > 0
        'Find TheString in the file
        'If found, debug.print and exit loop
    Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

我找到了这个代码,但似乎在2007 +版本的Excel VBA Application.FileSearch被淘汰了:

Sub FindText()
'http://www.mrexcel.com/forum/excel-questions/68673-text-file-search-excel-visual-basic-applications.html

Dim i As Integer

'Search criteria
With Application.FileSearch
    .LookIn = "c:\MyDownloads" 'path to look in
    .FileType = msoFileTypeAllFiles
    .SearchSubFolders = False
    .TextOrProperty = "*MAGIC*" 'Word to find in this line
    .Execute 'start search

'This loop …
Run Code Online (Sandbox Code Playgroud)

string vba find text-files

4
推荐指数
1
解决办法
3万
查看次数

使用VBA宏将每个Excel工作表另存为单独的工作簿

您好我正在尝试使用此代码将每张Excel保存到新工作簿.但是,它将整个工作簿保存为新文件名

Dim path As String
Dim dt As String
dt = Now()
path = CreateObject("WScript.Shell").specialfolders("Desktop") & "\Calendars " & Replace(Replace(dt, ":", "."), "/", ".")
MkDir path
Call Shell("explorer.exe" & " " & path, vbNormalFocus)

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets 'SetVersions
    If ws.name <> "How-To" And ws.name <> "Actg_Prd" Then
        ws.SaveAs path & ws.name, xlsx
    End If
Next ws
Run Code Online (Sandbox Code Playgroud)

什么是快速解决方案?

excel vba excel-vba

4
推荐指数
1
解决办法
3万
查看次数

C#ToolStrip插入标准菜单标准图标位置

我在stackoverflow上找到了关于在创建工具条时使用的标准图标的位置以及在工具条中"插入标准项目"(如新建,打印,剪切,粘贴等)时的VS-2010_Location.

但也许这已经改变了VS 2012,因为我无法找到这些图标.你在哪里找到VS 2012中的图标?

c# icons visual-studio-2012

3
推荐指数
1
解决办法
2056
查看次数

用于nil的Ruby未定义方法`+':NilClass(NoMethodError)

Ruby的新手.接收错误:未定义的方法`+'表示nil:NilClass(NoMethodError)

我不明白为什么我收到一个增加值的简单任务的错误.但是,错误可能是由其他原因造成的.

原因是什么?

class LinkedList
  class Node
    attr_accessor :data, :nextNode

    def initialize(data = nil, nextNode = nil)
      @data = data
      @nextNode = nextNode
    end
  end

#member variables
  @head = nil
  @size = 0

  def initialize
    @head = Node.new()
  end

  def add(val)
    curr = @head
    while curr.nextNode != nil
      curr = curr.nextNode
    end
    curr.nextNode = Node.new(val)
    @size += 1  #<<<-------------------------------------ERROR LINE----------
  end
end

list = LinkedList.new()
list.add(0)
Run Code Online (Sandbox Code Playgroud)

ruby numbers add

3
推荐指数
1
解决办法
7825
查看次数

SQL存储过程OUTPUT返回多行

我需要在报告表中返回尚未处理的所有报告的列表.我正在使用存储过程进行此过程.

这是我的存储过程创建:

CREATE PROCEDURE spGetAllUntouchedReportID
@ReportID int OUTPUT

AS
BEGIN
    SELECT @ReportID=Report.ReportID
    FROM Report
    WHERE Report.Status IS NULL
END
Run Code Online (Sandbox Code Playgroud)

这就是我调用存储过程的方式:

DECLARE @ReportID int
EXECUTE spGetNextReportID
@ReportID OUTPUT
Print @ReportID
Run Code Online (Sandbox Code Playgroud)

本质上,一个C#应用程序将连接并获取结果集,但我正在使用该调用来测试它.我的问题是对存储过程的调用只打印它找到的最后结果.

以下是报告表的示例集:

ReportID  Status
1         NULL
2         Incomplete
3         NULL
Run Code Online (Sandbox Code Playgroud)

打印出来的程序打印出:

3
Run Code Online (Sandbox Code Playgroud)

代替:

1
3
Run Code Online (Sandbox Code Playgroud)

如何让我的存储过程存储从存储过程返回的集合并调用它来打印每个存储过程?这可能会出现在其他存储过程中,我需要执行具有多个列并需要返回整个集合的Select*

sql sql-server stored-procedures sql-server-2008

3
推荐指数
2
解决办法
5万
查看次数

Excel VBA范围合并单元格和偏移

这可以直接复制并粘贴到excel模块中并运行

问题出在 AddCalendarMonthHeader() 中。月份单元格应该合并、居中和样式,但事实并非如此。我唯一的想法是 Main() 中的 range.offset() 正在影响它,但我不知道为什么或如何修复它。

在此输入图像描述

Public Sub Main()

    'Remove existing worksheets
    Call RemoveExistingSheets

    'Add new worksheets with specified names
    Dim arrWsNames() As String
    arrWsNames = Split("BDaily,BSaturday", ",")
    For Each wsName In arrWsNames
        AddSheet (wsName)
    Next wsName

    'Format worksheets columns
    For Each ws In ThisWorkbook.Worksheets
        If ws.name <> "How-To" Then
            Call ColWidth(ws)
        End If
    Next ws

    'Insert worksheet header
    For Each ws In ThisWorkbook.Worksheets
        If ws.name <> "How-To" Then
            Call AddSheetHeaders(ws, 2013)
        End If
    Next ws

    'Insert calendars …
Run Code Online (Sandbox Code Playgroud)

excel vba

3
推荐指数
1
解决办法
3万
查看次数

超越比较忽略来自Java RAD SVN Subclipse的.SVN文件夹

有没有快速告诉Beyond Compare忽略我的比较中的.svn文件夹?在Jboss Devloper Subclipse插件中为我的java代码生成的.svn文件夹中只有区别,这似乎是唯一让我头疼的东西显示出一堆红色文件夹.

svn beyondcompare beyondcompare3

3
推荐指数
1
解决办法
1562
查看次数

使用 C# XmlSerializer 为大型对象集写入块以避免内存不足

我喜欢 XmlSerialize 的工作方式,如此简单和优雅,并且具有属性 =p 但是,在序列化为 xml 文件之前构建所有对象的集合时,我遇到了内存不足问题。

我正在从 SQL 数据库填充一个对象,并打算使用 XmlSerialize 将该对象写入 XML。它适用于小子集,但如果我尝试从数据库中获取所有对象,则会遇到内存不足异常。

XmlSerialize 是否有某种功能可以让我从数据库中抓取 100 个对象的批次,然后写入它们,抓取下一批 100 个对象并附加到 xml?

我希望我不必陷入 XmlDocument 或需要更多手动编码工作的东西......

c# xml xmlserializer

3
推荐指数
1
解决办法
1759
查看次数

为什么SQL NOT EXISTS返回所有NULL值的1条记录

SQL小提琴如下:

create table tbl( col1 int, col2 int, col3 int);
insert into tbl values(1,1,1);
insert into tbl values(1,1,1);

select sum(col1) c1, sum(col2) c2, sum(col3)c3
from tbl
where not exists (
  select 2 as c1, 2 as c2, 2 as c3
  )
Run Code Online (Sandbox Code Playgroud)

我希望这会返回0条记录.相反,它返回1个空值记录.你能告诉我为什么吗?

Ps我试图理解不存在的行为.

mysql sql not-exists

3
推荐指数
1
解决办法
868
查看次数