Solved

SQL 7 datetime stored procedure parameter

Posted on 2000-04-26
4
684 Views
Last Modified: 2010-04-04

I'm having a problem passing a datetime parameter to an SQL 7 stored procedure.  I get an ODBC error - "Error converting datatype varchar to datetime".  The string is "01/01/2000 00:23:28.578"

I tried passing it as a string '2000.01.01 00:23:28.578' and using CAST ... AS DATETIME without luck too.  Tested the CAST and INSERT in Query Analyzer and they looked fine.

Delphi help, manual and D5 Developer's guide were no help.

-- Delphi 5 Code --

StoredProc1.Params[0].AsDateTime :=
      StrToDateTime(spDate+' '+sTime);
StoredProc1.Params[1].AsString :=
      sServer;
StoredProc1.Prepare;
StoredProc1.ExecProc;

-- SQL 7 Stored Procedure --

CREATE PROCEDURE [usp_InsertStat]
      @itime datetime,
      @server varchar(15)
AS
INSERT INTO stats (itime, server) VALUES (
      @itime,
      @server)

Can anyone help me out?

Thanks,

Scott
0
Comment
Question by:sfb
  • 2
4 Comments
 
LVL 2

Accepted Solution

by:
NetoMan earned 200 total points
ID: 2752849
Well, sounds like a problem with ODBC... but :

check StoredProc1.Params with the object inspector and set datetime to the param-type of param 0. (just in case is not).

Are you tried to pass only the date without time ?

(StoredProc1.Params[0].AsDate :=  StrToDate(spDate);

if works in this way, it will help to see where is the problem.

However, Why just don´t pass the param as string and then in the stored procedure you do the job of the conversion to datetime. As I see, you anyway do this conversion with the DateToStr function in Delphi.


NetoMan :)
0
 
LVL 6

Expert Comment

by:DrDelphi
ID: 2752901
I ran into the same problem a while back and ended up running the entire thing through DTS , making the conversion in VBScript during the transformation.  


Good luck!!
0
 

Author Comment

by:sfb
ID: 2753655

NetoMan -
I was planning to try your suggestion on my home computer (Win2000), unfortunately SQL Server is saying it is corrupted and I will need to reinstall.
I brought my work computer (notebook) home tonight, so I'll try soon.

DrDelphi -
I'm using a memorystream to rip through a large number of multi-megabyte, variable length records.  A fair bit of logic and manipulation needs to take place.  DTS may be able to handle it, but I don't think as quickly. ?

I have the program using dynamic SQL Insert statements, but I want to try stored procedures to compare speed.  Besides, I should know how.<g>

Scott
0
 

Author Comment

by:sfb
ID: 2753753

You forced me to take a closer look at how Params was indexed.  Looking at the Params in Object inspector I found that [0] in SQL 7 is a 'RETURN_VALUE'.

I switched to .ParamByName('@itime').AsDateTime and everything works well now.

Thanks,

Scott
0

Featured Post

Is Your AD Toolbox Looking More Like a Toybox?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
HTML text in the body of an email (delphi code) 12 120
delphi parse string to params 3 123
How to define IfThen functions in one common unit? 4 54
creating threads in delphi 1 106
A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question