Solved

SQL 7 datetime stored procedure parameter

Posted on 2000-04-26
4
686 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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Printing problem 2 102
Why can't I create any project with my delphi EXE file? 6 39
Adoquery sql  left join does not work 25 99
Wincontrol not (correctly) drawn 15 42
Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

821 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